Android进阶之路 - keystore、jks基础知识

主要介绍了涉及到keystore、jks签名证书时用的一些常见属性与命令  ~

keyStore、Jks签名证书五部曲

keystore、jks基础知识

生成keystore、jks 签名证书

反编译keystore、jks签名证书

相互转换keystore、jks 签名证书

获取apk签名信息、抹除apk签名状态、重新签名apk
 

不知你是否有这样一个疑问:keyStore 和 jks签名证书的区别是什么? 

其实主要区别就是生成时选用的工具有所不同而已

在不同平台、场景要求的签名证书不同,所以需要根据场景自行转换签名证书 ~

  • keyStore:一般由 Eclipce 或 dom(cmd)生成
  • jks:一般由 AndroidStudio 内部生成

科普一下dom命令行生成签名时,常见的命令属性~

keytool命令

-certreq     [-v] [-protected]
             [-alias <别名>] [-sigalg <sigalg>]
             [-file <csr_file>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
             [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-delete      [-v] [-protected] -alias <别名>
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-exportcert  [-v] [-rfc] [-protected]
             [-alias <别名>] [-file <认证文件>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genkeypair  [-v] [-protected]
             [-alias <别名>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-sigalg <sigalg>] [-dname <dname>]
             [-validity <valDays>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genseckey   [-v] [-protected]
             [-alias <别名>] [-keypass <密钥库口令>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-help

-importcert  [-v] [-noprompt] [-trustcacerts] [-protected]
             [-alias <别名>]
             [-file <认证文件>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-importkeystore [-v]
             [-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
             [-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
             [-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]
             [-srcprotected] [-destprotected]
             [-srcprovidername <源提供方名称>]
             [-destprovidername <目标提供方名称>]
             [-srcalias <源别名> [-destalias <目标别名>]
               [-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
             [-noprompt]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-keypasswd   [-v] [-alias <别名>]
             [-keypass <旧密钥库口令>] [-new <新密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-list        [-v | -rfc] [-protected]
             [-alias <别名>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-printcert   [-v] [-file <认证文件>]

-storepasswd [-v] [-new <新存储库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

属性介绍

|命令  |含义  |
|--|--|
|-genkey | 生成|
|-keystore test.keystore| 对应keystore 文件名|
|-alias test |别名|
|-keyalg RSA |加密方式|
|-validity 365 |年限|

图示

系统介绍

|命令  |含义  |
|--|--|
|-genkey | 生成|
|-keystore test.keystore| 对应keystore 文件名|
|-alias test |别名|
|-keyalg RSA |加密方式|
|-validity 365 |年限|
**`系统介绍`**
|命令  |含义  |
|--|--|
|-alias <alias>                  |要处理的条目的别名|
|-keyalg <keyalg>                |密钥算法名称|
|-keysize <keysize>              |密钥位大小|
|-sigalg <sigalg>                |签名算法名称|
|-destalias <destalias>          |目标别名|
|-dname <dname>                  |唯一判别名|
|-startdate <startdate>          |证书有效期开始日期/时间|
|-ext <value>                    |X.509 扩展|
|-validity <valDays>             |有效天数|
|-keypass <arg>                  |密钥口令|
|-keystore <keystore>            |密钥库名称|
|-storepass <arg>                |密钥库口令|
|-storetype <storetype>          |密钥库类型|
|-providername <providername>    |提供方名称|
|-providerclass <providerclass>  |提供方类名|
|-providerarg <arg>              |提供方参数|
|-providerpath <pathlist>        |提供方类路径|
|-v                              |详细输出|
|-protected                      |通过受保护|

图示

常见功能

  • 修改keystore文件密码

cmd命令:keytool -storepasswd -new 新密码 -keystore [android.keystore签名证书]

  • 修改keystore文件别名

cmd命令:keytool -changealias -keystore [android.keystore签名证书] -alias 原别名 -destalias 新别名

  • 修改keystore文件别名的密码

cmd命令:keytool -keypasswd -alias 别名 -new android -keystore  [android.keystore签名证书]

 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方那座山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值