【问题标题】:how to generates JCEKS keystore in android如何在 android 中生成 JCEKS 密钥库
【发布时间】:2014-04-04 17:46:14
【问题描述】:

我用

KeyStore store = KeyStore.getInstance("JCEKS");

但是是 make KeyStoreException

java.security.KeyStoreException: KeyStore JCEKS implementation not found

原因是默认安全提供程序在 Android 中是 bouncycastle。 因此我使用

KeyStore store = KeyStore.getInstance("JCEKS", "SunJCE");

但是会造成 NoSearchProviderException

java.security.NoSearchProviderException: SunJCE

【问题讨论】:

    标签: android security keystore android-keystore


    【解决方案1】:

    Android 不包含 SunJCE 安全提供程序,因此 JCEKS 不是受支持的密钥库类型(旧的 JKS 格式也不支持)。

    要创建密钥库,您可以选择 BouncyCastle 密钥库

    KeyStore ks = KeyStore.getInstance("BKS");
    

    或者,从 Android 4.3 开始,基于 OpenSSL 的新 AndroidKeyStore 专用于存储应用程序私钥(更多详细信息 here

    KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
    

    如果您有 JCEKS 密钥库,则必须使用 keytool 将其转换为 BKS 格式:

    keytool -importkeystore -srcstoretype JCEKS -srckeystore my.keystore -srckeypass my_password -destprovidername BC -deststoretype BKS -destkeypass my_new_password -destkeystore my.bks
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-16
      • 2015-09-13
      • 2014-11-04
      • 2022-01-13
      • 2017-08-07
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      相关资源
      最近更新 更多