命令行生成Android jks签名文件并获取jks信息

简介: 命令行生成Android jks签名文件并获取jks信息

Java keytool是密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

本篇主要介绍

  • 查看keytool的参数说明
  • 如何用命令行生成Android jks签名文件
  • 获取jks信息

查看keytool的参数说明

在Terminal输入以下命令,可查看keytool所有命令选项

keytool -genkey --help

ctloveqy@CtLoveQydeMacBook-Pro Pack % keytool -genkey --help
keytool -genkeypair [OPTION]...
生成密钥对
选项:
 -alias <alias>          要处理的条目的别名
 -keyalg <alg>           密钥算法名称
 -keysize <size>         密钥位大小
 -groupname <name>       组名。例如,椭圆曲线名称。
 -sigalg <alg>           签名算法名称
 -dname <name>           唯一判别名
 -startdate <date>       证书有效期开始日期/时间
 -ext <value>            X.509 扩展
 -validity <days>        有效天数
 -keypass <arg>          密钥口令
 -keystore <keystore>    密钥库名称
 -storepass <arg>        密钥库口令
 -storetype <type>       密钥库类型
 -providername <name>    提供方名称
 -addprovider <name>     按名称 (例如 SunPKCS11) 添加安全提供方
   [-providerarg <arg>]    配置 -addprovider 的参数
 -providerclass <class>  按全限定类名添加安全提供方
   [-providerarg <arg>]    配置 -providerclass 的参数
 -providerpath <list>    提供方类路径
 -v                      详细输出
 -protected              通过受保护的机制的口令
使用 "keytool -?, -h, or --help" 可输出此帮助消息

使用keytool生成签名文件

命令行举例:

keytool -genkeypair -alias <别名> -keyalg RSA -keypass <密码> -keystore <签名文件名>.jks -storepass <密码>  <文件保存路径(可有可无)>

这里来一个流程示范,仅供参考,正式发布签名不建议这样写。

ctloveqy@CtLoveQydeMacBook-Pro Pack % keytool -genkeypair -alias mytest -keyalg RSA -keypass mypass -keystore mytest.jks -storepass mypass

下面是一个完成的创建流程

ctloveqy@CtLoveQydeMacBook-Pro Pack % keytool -genkeypair -alias mytest -keyalg RSA -keypass mypass -keystore mytest.jks -storepass mypass
您的名字与姓氏是什么?
  [Unknown]:  WH
您的组织单位名称是什么?
  [Unknown]:  WH
您的组织名称是什么?
  [Unknown]:  WH
您所在的城市或区域名称是什么?
  [Unknown]:  WH
您所在的省/市/自治区名称是什么?
  [Unknown]:  HB
该单位的双字母国家/地区代码是什么?
  [Unknown]:  86
CN=WH, OU=WH, O=WH, L=WH, ST=HB, C=86是否正确?
  [否]:  Y
正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 90 天):
     CN=WH, OU=WH, O=WH, L=WH, ST=HB, C=86

获取jks信息

查看的命令:

keytool -list -keystore test.jks

Terminal控制台输出如下

ctloveqy@CtLoveQydeMacBook-Pro Pack % keytool -list -keystore mytest.jks
输入密钥库口令:  
密钥库类型: PKCS12
密钥库提供方: SUN
您的密钥库包含 1 个条目
mytest, 2022年8月1日, PrivateKeyEntry, 
证书指纹 (SHA-256): 3B:85:2A:26:19:92:B9:A2:27:96:0C:43:75:6A:6D:11:46:05:36:27:D2:F4:FE:7E:04


相关文章
|
7天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
17 1
|
7天前
|
Shell Android开发
Android系统 init.rc文件详解
Android系统 init.rc文件详解
26 0
|
8天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
47 0
|
28天前
|
算法 Android开发
Android签名算法的原理
Android签名算法的原理
20 0
|
7天前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
22 0
|
7天前
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
17 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
7天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
41 1
|
7天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
28 1
|
7天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
3 0
|
8天前
|
测试技术 Android开发
Android App获取不到pkgInfo信息问题原因
Android App获取不到pkgInfo信息问题原因
17 0