【发布时间】:2014-05-20 03:37:56
【问题描述】:
我有一个受密码保护的加密 RSA 私钥,它是使用 PyCrypto (2.6.1) 创建的,根据他们的文档具有以下格式:PrivateKeyInfo, PKCS#8 (DER SEQUENCE), PEM (RFC1423),请参阅
[https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.RSA._RSAobj-class.html#exportKey].
如何使用 Bouncycastle/Spongycastle 解密此 RSA 密钥?
我已经在 Google 上搜索了很长时间,但只得出了一些结果,要么不适用于 1.50 版(因为 PEMReader 已被弃用并被删除),要么是 PEMParser 的示例似乎无法阅读此内容格式。顺便说一句:我错过了关于 Bouncycastle 的任何文件吗?
这是我的加密私钥的标头:
-----BEGIN PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,68949227DD8A502D
xyz...
如果有人能帮助我,我真的很感激!
【问题讨论】:
-
这是加密密钥(具有 CBC 模式和输入向量 68949227DD8A502D 的 TripleDES)。因此,在 PEMReader 可以读取之前,必须先对其进行解密。
-
请注意,密钥是使用旧的(且不安全的)算法加密的。当前的做法是使用 PKCS#8 来保护私钥。 Bouncy Castle 在 JceOpenSSLPKCS8DecryptorProviderBuilder 类中支持 PKCS#8 解密。
标签: java rsa bouncycastle pem pkcs#8