繁体   English   中英

JAVA中的加密私钥:java.security.InvalidKeyException

[英]Encrypted Private key in JAVA: java.security.InvalidKeyException

嗨,我正在尝试阅读JAVA中的加密私钥。 使用的密钥是带有加密算法的PKCS#8,具有SHA-1和2个密钥DESede的PBE。

代码如下:

EncryptedPrivateKeyInfo encryptPKInfo = new EncryptedPrivateKeyInfo("RSA",readFileBytes(filename));
Cipher cipher = Cipher.getInstance(encryptPKInfo.getAlgName());
PBEKeySpec pbeKeySpec = new PBEKeySpec("pwd".toCharArray());
SecretKeyFactory secFac = SecretKeyFactory.getInstance("PBEWithSHA1AndDESede");
Key pbeKey = secFac.generateSecret(pbeKeySpec);
AlgorithmParameters algParams = encryptPKInfo.getAlgParameters();
cipher.init(Cipher.DECRYPT_MODE, pbeKey,algParams);
KeySpec pkcs8KeySpec = encryptPKInfo.getKeySpec(cipher);
KeyFactory kf = KeyFactory.getInstance("RSA");
return kf.generatePrivate(pkcs8KeySpec);

我正面临以下提到的错误:

Exception in thread "main" java.security.InvalidKeyException: No installed provider supports this key: com.sun.crypto.provider.PBEKey
at javax.crypto.Cipher.chooseProvider(Cipher.java:888)
at javax.crypto.Cipher.init(Cipher.java:1507)
at javax.crypto.Cipher.init(Cipher.java:1438)
at com.abc.utils.CertificateUtil.readEncryptedPrivateKey(CertificateUtil.java:62)
at com.abc.test.Test1.main(Test1.java:16)
SecretKeyFactory secFac = SecretKeyFactory.getInstance("PBEWithSHA1AndDESede")

PBEWithSHA1AndDESede不是Java支持的密码算法的名称。 有关正确的列表,请参见“ 标准算法名称”

您可能是说PBEWithHmacSHA1AndDESede吗?

暂无
暂无

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

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