APP为什么签名,使用keytool jarsigner进行签名

签名(sign):在应用程序的特定字段写入特定的标记信息,表示该软件已经通过了签署者的审核。过程:使用私有密钥数字地签署一个给定的应用程序

作用:

识别应用程序作者

检测应用程序是否发生改变

有种程序升级,当新程序与旧程序签名不一致时,会发生冲突认为不是同一APP,,要求新程序改包名

。。。

keytool 生成签名私钥命令

keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA  -validity 10000  -keystore Test.keystore -alias devel   -keypass 123456 -storepass 123456

参数:

Keytool 选项 描述
-genkey 产生一个键值对(公钥和私钥)
-v 允许动作输出
-alias<alias_name> 键的别名。只有前八位字符有效。
-keyalg 产生键的加密算法。支持DSA和RSA。
-keysize 产生键的长度。如果不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。
-dname

专有名称,描述谁创建的密钥。该值被用作自签名证书的颁发者和主题字段。注意你可以不在命令行指定。如果没有指定keytool会提示你(CN, OU, and so on)。

-keypass

键的密码。

主要为了安全起见,如果没提供,keytool会提示你输入。

-validity

键的有效期,单位:天

Note: A value of 10000 or greater is recommended.

-keystore.keystore 用于存储私钥的文件。
-storepass

私钥存储文件的密码。

主要为了安全起见,如果没提供,keytool会提示你输入。这个密码不会存储在你的shell历史记录中。


jarsigner使用私钥签名

jarsigner  -verbose -sigalg SHA1withDSA -digestalg SHA1  -keystore Test.keystore -storepass 123456 test.apk devel

参数:

Jarsigner 选项 描述
-keystore.keystore 包含你私钥的存储文件
-verbose 显示输出动作。
-sigalg 签名算法,用 SHA1withRSA.
-digestalg 消息摘要算法,用 SHA1.
-storepass

存储文件的密码。

主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。

-keypass

私钥的密码。

主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。