SHA1签名文件摘要无效

时间:2011-11-18 00:07:15

标签: jnlp

我一直在尝试验证Jar签名:

    jarsigner -verify -verbose -certs example.jar

我遇到了以下问题:

jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for o
rg/apache/log4j/net/DefaultEvaluator.class

我得到了一些关于使用-digestalg SHA-1的建议,但我不知道应该把这句话放在哪里!

我希望你能帮我解决问题。

3 个答案:

答案 0 :(得分:30)

当jar被签名两次时也会发生此错误。

解决方案是通过从jar中删除*。 SF ,*。 DSA ,*。 RSA 文件来“取消签名”该jar META-INF ,然后再次签名。

答案 1 :(得分:15)

以下是解决方案:

jarsigner -keystore mykeystore -digestalg SHA1 jarfile alias

验证:

jarsigner -verify -verbose -certs jarfile

答案 2 :(得分:2)

这对我有用。我不得不将ANT更改为1.8.3版并添加DIGESTALG属性:

<!-- VLS2014 ADDED digestalg="SHA1" -->
<signjar keystore="${security.keystore}"
         storepass="${security.storepass}"
         keypass="${security.keypass}"
         alias="${security.alias}"
         jar="${basedir}/temp/tj/${justfname}"
         signedjar="${real.signed.jar}"
     digestalg="SHA1"
        />

<delete file="${basedir}/temp/tj/${justfname}" />
</target>