Java 8 签名失效

最近在盒子上安装应用失败,提示签名失效。查了资料之后,猜测可能是使用的 java 8。所以用命令进行手动签名。

首先:生成秘钥对.

-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                      通过受保护的机制的口令
keytool -genkey -v -keystore /Users/xxx/Downloads/xxx.keystore -alias rca -keyalg RSA -validity 20000
keytool -genkey -v -keystore {秘钥库名称,默认是JDK的bin目录,也可以指定}.keystore -alias {别名}  -keyalg {算法名称} -validity {有效天数} 
输入密钥库口令:  输入密码,不过不会显示
您的名字与姓氏是什么?
  [Unknown]:  qq
您的组织单位名称是什么?
  [Unknown]:  qq
您的组织名称是什么?
  [Unknown]:  qq
您所在的城市或区域名称是什么?
  [Unknown]:  qq
您所在的省/市/自治区名称是什么?
  [Unknown]:  qq
该单位的双字母国家/地区代码是什么?
  [Unknown]:  qq
CN=qq, OU=qq, O=qq, L=qq, ST=qq, C=qq是否正确?
  []:  yes
您的名字与姓氏是什么?
  [qq]:  qq
您的组织单位名称是什么?
  [qq]:  qq
您的组织名称是什么?
  [qq]:  qq
您所在的城市或区域名称是什么?
  [qq]:  qq
您所在的省/市/自治区名称是什么?
  [qq]:  qq
该单位的双字母国家/地区代码是什么?
  [qq]:  qq
CN=qq, OU=qq, O=qq, L=qq, ST=qq, C=qq是否正确?
  []:  y 

否 后面需要输入 y , yes 是错误的。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore {xxx.keystore} -signedjar {xxx.apk(签名后的APK)}
{ xxx.apk(未签名的)} {上面生成的keystore文件的别名}

jarsigner [选项] jar-file 别名
       jarsigner -verify [选项] jar-file [别名...]

[-keystore <url>]           密钥库位置

[-storepass <口令>]         用于密钥库完整性的口令

[-storetype <类型>]         密钥库类型

[-keypass <口令>]           私有密钥的口令 (如果不同)

[-certchain <文件>]         替代证书链文件的名称

[-sigfile <文件>]           .SF/.DSA 文件的名称

[-signedjar <文件>]         已签名的 JAR 文件的名称

[-digestalg <算法>]        摘要算法的名称

[-sigalg <算法>]           签名算法的名称

[-verify]                   验证已签名的 JAR 文件

[-verbose[:suboptions]]     签名/验证时输出详细信息。
                            子选项可以是 all, grouped 或 summary

[-certs]                    输出详细信息和验证时显示证书

[-tsa <url>]                时间戳颁发机构的位置

[-tsacert <别名>]           时间戳颁发机构的公共密钥证书

[-tsapolicyid <oid>]        时间戳颁发机构的 TSAPolicyID

[-tsadigestalg <算法>]      时间戳请求中的摘要数据的算法

[-altsigner <>]           替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

[-internalsf]               在签名块内包含 .SF 文件

[-sectionsonly]             不计算整个清单的散列

[-protected]                密钥库具有受保护验证路径

[-providerName <名称>]      提供方名称

[-providerClass <>        加密服务提供方的名称
  [-providerArg <参数>]]... 主类文件和构造器参数

[-strict]                   将警告视为错误

java 6:少了-sigalg 和 -digestalg 两个参数

jarsigner -verbose  -keystore {xxx.keystore} -signedjar {xxx.apk(签名后的APK)}
{ xxx.apk(未签名的)} {上面生成的keystore文件的别名}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值