【问题标题】:How to resolve error Salt must be 8 bytes long如何解决错误 Salt must be 8 bytes long
【发布时间】:2023-03-19 13:07:02
【问题描述】:

我正在编写一个使用证书(pfx 文件)签署 pdf 的程序。对于少数证书,我得到了以下例外。

java.security.InvalidAlgorithmParameterException: Salt must be at least 8 bytes long

当我执行以下代码时会发生这种情况。

Keystore ks = KeyStore.getInstance("pkcs12");

我在以下 java 文件的第 123 行遇到异常。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/com/sun/crypto/provider/HmacPKCS12PBESHA1.java?av=h

【问题讨论】:

    标签: itext digital-signature keystore pfx digital


    【解决方案1】:

    您的密钥库有一个或多个盐长度小于 8 的证书。加密程序需要至少 8 个字节。

    我建议只使用您需要的一个证书创建一个新的密钥库,然后尝试使用该证书进行签名。

    【讨论】:

      【解决方案2】:

      我使用 pkcs12-DEF 密钥库解决了异常。我在下面添加了我的代码行。

      BouncyCastleProvider provider = new BouncyCastleProvider();
      Security.addProvider(provider);
      KeyStore ks = KeyStore.getInstance("pkcs12-DEF");
      

      之前我没有将 BountyCastleProvider 添加到 Security,因此我无法获取 pkcs12-DEF 密钥库的实例。 除此之外,我还从http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 位置下载了 jar 文件,并将其替换为 Java\Jdk1.7\jre\lib\security 中的 jar 文件。这些是 JCE 7 无限强度策略文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-29
        • 1970-01-01
        • 2019-04-11
        • 2012-12-04
        • 2018-12-23
        相关资源
        最近更新 更多