【发布时间】:2015-07-31 08:37:43
【问题描述】:
使用 Java 和 Bouncy Castle 1.52,我可以使用以下代码通过 PEM 证书加载私钥。我也有一个相同的 PKCS8 格式的 private.key 文件。直接使用 private.key 文件而不是 PEM 的代码是什么?
String keyPath = "C:\\RSA7\\privatenopass.pem";
BufferedReader br = new BufferedReader(new FileReader(keyPath));
PEMParser pp = new PEMParser(br);
PEMKeyPair pemKeyPair = (PEMKeyPair) pp.readObject();
KeyPair kp = new JcaPEMKeyConverter().getKeyPair(pemKeyPair);
pp.close();
cipher.init(Cipher.DECRYPT_MODE, kp.getPrivate());
【问题讨论】:
-
基于这个答案stackoverflow.com/q/29789984/2413303你应该检查
PemParser返回的对象是什么,很有可能它是PKCS8EncryptedPrivateKeyInfo。 -
您好,感谢您的回复。 private.key 没有加密,它在磁盘上可以使用。我知道它是 PKCS8 格式,我只是想使用它(?)
-
stackoverflow.com/questions/14228282/… 建议 PEM 文件中的密钥已经以 PKCS#8 格式存储,因此如果未使用密码加密,您可以删除标题(---- -BEGIN RSA PRIVATE KEY-----),Base64-decode输入,获取需要的字节。但是肯定有标准化的代码可以做到这一点吗?
-
pem 解析器用它做什么?请尝试它是否可以创建某种类型的对象或者您必须手动创建。
-
请使用常用标签。我不是一直在扫描所有的密码相关标签。
标签: java encryption cryptography bouncycastle pem