Java 密钥库(例如 JKS、PKCS(允许保存私钥(接口( 键(和 证书链。 但是,RSA 密钥对的私钥是加密的 (例如 EncryptedPrivateKeyInfo in bouncycastle 或 javax( 没有实现 按键界面。
在密钥库中存储加密私钥的正确方法是什么?
如果您已经有一个EncryptedPrivateKeyInfo
,那么在创建密钥库条目时应该能够直接使用它。Java 将私钥存储在密钥库中,以EncryptedPrivateKeyInfo
格式存储。
您需要在KeyStore.setKeyEntry(String alias, byte[] key, Certificate[] chain)
中使用此方法。文档在这里。
另一种setKeyEntry
方法接受一个额外的参数,即密码,Java 将使用提供的密码构造EncryptedPrivateKeyInfo
本身。
注意:只有当 Java 支持该Key Protection Algorithm
时,它才会导入私钥,否则会投诉。如果确实有问题,您可以查看自己解密加密私钥并使用其他setKeyEntry()
方法的其他选项。