jarsigner错误:java.lang.RuntimeException:keystore load:Keystore被篡改,或者密码不正确

时间:2012-06-04 19:28:17

标签: java security jarsigner

我正在尝试使用Java 6的jarsigner签署.wgt文件(小部件,这是一个jar文件)。但是当我尝试签名时,它在要求输入密钥库的密码后给出了以下错误。< / p>

jarsigner error: java.lang.RuntimeException: keystore load: Keystore was tampered with, or password was incorrect

我甚至尝试使用新创建的密钥存储区,因此我确信我输入的密码正确无误。还有什么可能出错吗? 提前谢谢!

8 个答案:

答案 0 :(得分:3)

如果您要引用密码,请尝试删除引号。我在Windows 7上的1.7.0_25-b17 JDK中使用jarsigner时遇到此错误。我通常在Solaris和Linux上使用早期版本的jarsigner,并且始终使用单引号引用密码,因为它通常包含由shell解释的字符

我还没有验证,但是我猜测* nix上的shell解释器会在将参数传递给jarsigner之前修剪引号,但是Windows命令提示符没有。

例如,而不是

jarsigner -keystore /my/cert/file -storepass 'password' /my/jar/file my_alias

jarsigner -keystore /my/cert/file -storepass password /my/jar/file my_alias

答案 1 :(得分:2)

检查一次密钥库别名。有时候keystore别名与keytool别名不同,那么它会给出相同的错误......所以检查别名一次

答案 2 :(得分:1)

我遇到了与@Peter完全相反的问题我的密码中有特殊字符,我的签名脚本一直出现此错误,直到我用双引号"包裹密码

我认为这是因为我正在运行批处理文件来签署我的应用程序,而不是直接在命令行中输入它,而且Windows对密码中的特殊字符感到困惑。

答案 3 :(得分:0)

我的问题是我将密码放在带有-storepass-keypass开关的命令中(无论如何这都是个坏主意)而且我的系统Jarsigner没有。一旦我把它们拉出来并允许Jarsigner提示我输入密码,它按预期工作。

答案 4 :(得分:0)

在我的情况下,大写锁定键有问题。

答案 5 :(得分:0)

就我而言,问题是文件夹中有奇怪的字符。我更改了名称并且可以正常工作。

答案 6 :(得分:0)

只需更改文件名即可。您只提供了名称而没有扩展名。

答案 7 :(得分:-1)

您收到的错误消息描述了该问题。您输入的密码不正确或密钥库已损坏。

最可能的答案是您将密钥库密码与别名/密钥通道的密码混淆。