使用新安装的JDK 1.7,我们对JAR文件进行签名。之后,我们立即使用相同的jarsigner和相同的密钥库对其进行验证,并且...失败,并显示以下消息:


...上的无效SHA256哈希


签名/验证代码很简单(Windows批处理中的两行结果):

%JAVADIR%\jarsigner -keystore \path\to\SBBJavaCodeSigningStore -storepass my_password SecureBlackbox.JCE.jar sbbjavacodesigningkey
%JAVADIR%\jarsigner -verify -keystore \path\to\SBBJavaCodeSigningStore -storepass my_password SecureBlackbox.JCE.jar


最糟糕的是,问题似乎是随机的,并且验证失败时jarsigner甚至没有设置错误级别(退出代码)。

它是Java签名者或加密类的错误还是其他错误?

最佳答案

我将解决方案放在这里,作为其他用户的课程。

看来以后在批处理文件中,我们对所有JAR进行了批签名,并且此特定的JAR被签名了两次。 jarsigner允许您执行第二个签名,并以此方式破坏第一个签名。

10-02 22:55