繁体   English   中英

加载p12密钥库的BadPaddingException

[英]BadPaddingException loading p12 keystore

执行以下代码时:

    KeyStore ks = KeyStore.getInstance(storeType);
    ks.load(new FileInputStream(keyStore), storePassword.toCharArray());

    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    kmf.init(ks, keyPassword.toCharArray());

我得到一个例外:

java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

这最初来自使用keytool转换为PKCS12密钥库的JKS密钥库。 我尝试创建一个新的PKCS12密钥库,但没有运气。

JKS支持使用两个密码,一个用于商店,一个用于密钥。 PKCS12没有。 使用keytool时,您会收到有关此问题的警告。

从新密钥库迁移到代码时,代码可能会继续使用旧密钥密码,在这种情况下密码不同。

Java 9提供了一个更好的异常消息,表明它可能在解密期间由坏密钥引起。

在这种情况下,请确保传入与商店密码匹配的密钥密码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM