我的ant signjar任务似乎正在改变我的密码

时间:2012-05-24 17:28:13

标签: ant jar-signing jarsigner

当我尝试使用此行签署一个jar时:

jarsigner -storetype pkcs12 -keystore cert_comodo.pfx MyJar.jar "le-01234567-0123-0123-0123-0123456789ab"

它提示我输入密码,一切正常。当我尝试用这个蚂蚁目标签名时:

<target name="sign_jars" depends="obfuscated_jar">
    <signjar 
            keystore="cert_comodo.pfx"
            alias="le-01234567-0123-0123-0123-0123456789ab"
            storepass="A, pa$$." <Not my real password or alias, btw>
            storetype="pkcs12">
        <path>
            <fileset dir="." includes="*.jar" />
        </path>
    </signjar>
</target>

我收到此错误:

[signjar] jarsigner error: java.lang.RuntimeException: keystore load: failed t
o decrypt safe contents entry: javax.crypto.BadPaddingException: Given final blo
ck not properly padded

如果我输错密码,会出现同样的错误。

我的密码中的$字符是否被Ant修改了?有没有办法可以欺骗蚂蚁让我以交互方式输入密码?谢谢!

1 个答案:

答案 0 :(得分:0)

问题很可能是由于ant$$视为转义单$,因此将实际密码字符串A, pa$传递给jarsigner。如果问题仍然存在,请尝试将密码更改为A, pa$$$$,以便转发2 $

Apache Ant™ Task Design Guidelines的其他一些文档:

  

... Ant 1.5在字符串中传递单个美元符号“$”; Ant 1.4和之前将剥离它。要获得此修复,我们首先必须编写测试套件以公开当前行为,然后更改某些内容,以便传递单个“$”,但为了向后兼容性,双“$$”被映射到“$”。