0

我正在尝试将 Java JCEKS 密钥库转换为包含两个对称密钥、一个 AES 和一个 3DES 的 PKCS12。

AES 密钥可以很好地导入 PKCS12 文件,但不能导入 3DES 密钥。

我正在使用的命令是:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -importkeystore -srckeystore D:\temp\ssc.jceks -srcstoretype jceks -destkeystore D:\temp\ssc.p12 -deststoretype pkcs12

我收到以下错误消息:

java.security.KeyStoreException: Key protection  algorithm not found: java.security.NoSuchAlgorithmException: unrecognized algorithm name: DESede

这是 Java 10.0.1,我也尝试过 Java 8u171 和 Java 11 EA 17。

Keytool 可以很好地列出 JCEKS 密钥库:

"c:\Program Files\Java\jdk-10.0.1\bin\keytool.exe" -list -keystore D:\temp\ssc.jceks -storepass xxxxx -storetype jceks -v

关于如何将 3DES 密钥导入 PKCS12 密钥库的任何想法?

谢谢。

4

1 回答 1

2

看起来SunJSSE实现PKCS12KeyStore 的默认 Provider 不支持该DESede算法。

您最好的选择是将它们放在JCEKS密钥库中(它是 Java 专有的,但 PKCS#11 标准是不存储非私有密钥。即使您必须这样做,也可能不支持 DESede,因为更多地考虑了 AES比 DESede 更安全,并且是行业标准。)

于 2018-06-13T14:31:00.277 回答