【问题标题】:Convert Java JCEKS keystore containing 3DES key to PKCS12将包含 3DES 密钥的 Java JCEKS 密钥库转换为 PKCS12
【发布时间】:2018-11-18 12:55:48
【问题描述】:

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

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 密钥库吗?

谢谢。

【问题讨论】:

    标签: java keytool pkcs#12 3des jceks


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 2019-10-21
      • 2023-03-08
      • 2014-11-04
      • 2018-03-29
      • 1970-01-01
      • 2011-09-03
      • 2018-07-16
      相关资源
      最近更新 更多