Java 1.6 和 1.7 jarsigner 有什么区别
刚刚注意到您无法使用 Java 1.7 jarsigner 签署 Android APK。所以我想知道这是为什么,1.6 和 1.7 签名者之间有什么区别?
Just noted that you can´t sign Android APKs with the Java 1.7 jarsigner. So I wonder why this is and what is the difference between the 1.6 and 1.7 signer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是因为 Java 1.7 的默认摘要算法是 SHA-256,而 Java 1.6 的默认摘要算法是 SHA1withDSA。
Java 1.6 Jarsigner 文档
Java 1.7 Jarsigner 文档
This is because the default digest algorithm for Java 1.7 is SHA-256 while for Java 1.6 it's SHA1withDSA.
Java 1.6 Jarsigner docs
Java 1.7 Jarsigner docs
是的,您可以使用 1.7!
查找有关 1.7 的用法的信息非常棘手,但一旦发现就很简单:
对于 keytool include
-sigalg SHA1withDSA -keyalg DSA -keysize 1024
对于 jarsigner include
-sigalg SHA1withDSA -digestalg SHA1
(1024 是最大值并且有效,少一点可能会成功)
Yes you CAN use 1.7!
It is very tricky to find info on the usage with 1.7, but once found it is reasonable simple:
For keytool include
-sigalg SHA1withDSA -keyalg DSA -keysize 1024
For jarsigner include
-sigalg SHA1withDSA -digestalg SHA1
(1024 is the maximum and works, less might do the trick)