1

当我尝试用这一行签署一个罐子时:

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 修改了?有没有办法可以欺骗 ant 让我以交互方式输入密码?谢谢!

4

1 回答 1

0

该问题很可能是由于将其视为转义的 single ,因此将实际密码字符串传递给antjarsigner 。如果问题仍然存在,请尝试将密码更改为 2秒以进行转义。$$$A, pa$A, pa$$$$$

来自Apache Ant™ 任务设计指南的一些附加文档:

... Ant 1.5 通过字符串传递单个美元符号“$”;Ant 1.4 及之前版本会剥离它。为了得到这个修复,我们首先必须编写测试套件来公开当前行为,然后改变一些东西,使单个“$”通过,但双“$$”映射到“$”以实现向后兼容性。

于 2013-03-13T18:00:15.423 回答