将加密的私钥存储到 Java 个密钥库
Storing encrypted PrivateKey's to Java Keystores
Java 密钥库(例如 JKS、PKCS)允许 saving 私钥(接口
Key) 和
证书链。但是,RSA KeyPair 的私钥已加密
(例如 EncryptedPrivateKeyInfo in bouncycastle or in javax)不执行
键接口。
在密钥库中存储加密私钥的正确方法是什么?
如果您已经有一个 EncryptedPrivateKeyInfo
,您应该可以在创建密钥库条目时直接使用它。 Java 将 PrivateKey 以 EncryptedPrivateKeyInfo
格式存储在 KeyStore 中。
您需要在KeyStore.setKeyEntry(String alias, byte[] key, Certificate[] chain)
中使用此方法。文档 here.
另一个 setKeyEntry
方法接受一个附加参数,即密码,Java 将使用提供的密码构造 EncryptedPrivateKeyInfo
本身。
注意:只有Java支持Key Protection Algorithm
才会导入私钥,否则报错。如果它确实抱怨,您可以查看其他选项,自己解密加密的私钥,并使用其他 setKeyEntry()
方法。
Java 密钥库(例如 JKS、PKCS)允许 saving 私钥(接口 Key) 和 证书链。但是,RSA KeyPair 的私钥已加密 (例如 EncryptedPrivateKeyInfo in bouncycastle or in javax)不执行 键接口。
在密钥库中存储加密私钥的正确方法是什么?
如果您已经有一个 EncryptedPrivateKeyInfo
,您应该可以在创建密钥库条目时直接使用它。 Java 将 PrivateKey 以 EncryptedPrivateKeyInfo
格式存储在 KeyStore 中。
您需要在KeyStore.setKeyEntry(String alias, byte[] key, Certificate[] chain)
中使用此方法。文档 here.
另一个 setKeyEntry
方法接受一个附加参数,即密码,Java 将使用提供的密码构造 EncryptedPrivateKeyInfo
本身。
注意:只有Java支持Key Protection Algorithm
才会导入私钥,否则报错。如果它确实抱怨,您可以查看其他选项,自己解密加密的私钥,并使用其他 setKeyEntry()
方法。