jarsigner 错误: java.security.SignatureException: private key algorithm is not c ompatible with signat

私钥算法与签名算法不兼容

jarsigner 错误: java.security.SignatureException: private key algorithm is not compatible with signature algorithm 

问题场景:在Android Studio中签名是正确的,加固之后需要再次签名就报错了,用了腾讯的乐固加固后自动签名的,最后提示签名失败,360加固也是报错,用爱加密提示如下:


到java目录下用jarsigner命令:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keypass XXX -storepass XXX -keystore AAA.keystore D:\A.apk 别名

显示如下:


第一次遇到这种问题,不知道上一任是怎么设置的??!!而且急着上线设置了新的签名,然后被拒了,叫客服修改了签名。下载量什么的清零,只改了应用宝的,应用宝只能修改两次签名。其他应用市场修改起了麻烦,需要软件著作权什么或者公司盖章的扫描件,签名问题最后别改,提交发布到应用市场了就算发布失败也会记录你的签名,除非改包名,这里小抱怨一下

然后搜索到github:

https://github.com/jvoegele/gradle-android-plugin/issues/84

完全看不懂在哪里设置,值得反思的就是其中的两点:


说可以设置加密方式,这条线索非常关键,于是乎上网搜了

http://www.aiuxian.com/so/p-27606.html,里面提到很多算法,这才想了解签名文件中用的是哪一种算法

最后查看了签名信息:

D:\Program Files\Java\jdk1.8XX\bin>keytool -list -v -keystore "D:\Program Files\Java\jdk1.8XX\bin\XXX.keystore"

然后看到加密方式


 把-sigalg SHA1withRSA换成-sigalg SHA1withDSA

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keypass XXX -storepass XXX -keystore AAA.keystore D:\A.apk 别名

马赛克如下:


记录到此 欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值