当前位置: 首页 > 知识库问答 >
问题:

将对称密钥导入Android Keystore(外部生成的密钥)

程凯定
2023-03-14
  final SecretKey aesKey = new SecretKeySpec(myKeyByteArray, 0, myKeyByteArray.length, "AES");
  final KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
  keyStore.load(null);
  keyStore.setEntry(
          "my_key_alias",
          new KeyStore.SecretKeyEntry(aesKey),
          new KeyProtection.Builder(KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
         .setBlockMode(KeyProperties.BLOCK_MODE_GCM)         
         .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
         .build());
final KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(AES_KEY_LEN);
final SecretKey aesKey = keyGenerator.generateKey();
....

编辑:没有必要的变通方法。使用上述代码可以将外部生成的密钥导入到Android Keystore中。

共有1个答案

幸乐湛
2023-03-14

我在我的Android Studio虚拟设备(API28)上测试第一段代码。例外情况提出如下:

java.Security.KeyStoreException:无法导入密钥。密钥存储错误代码:-6

这段话对你有用吗?

 类似资料:
  • 我想向AndroidKeyStore导入一个密钥。所以,我可以通过openssl以以下方式生成它 openssl rsa-text-in privateKey2048。佩姆 openssl pkcs8-topk8-通知PEM-in/私钥2048。pem-出口-出口私家车2048。德诺克里普特酒店 然后我可以把它从private2048.der转换成十六进制格式,可以在Android应用程序中的by

  • 我有两个不同的密钥对值,使用Javakeytools生成并存储在两个不同的文件中,称为keystore1.jks和keystore2.jks. 我所做的是从keystore2导入了密钥对。jks呼叫keystore1。jks通过下面的命令 我已经添加了密钥。jks到服务器使用这个密钥库监听ssl。 现在我已经从keystore2文件中导入了公钥。jks到名为truststore的信任库文件。jks

  • 如果我尝试使用OpenSSL命令行生成3TDES加密的PKCS 8密钥: 我得到: PKCS8 RFC没有说明必须使用哪种算法来创建密钥块。它确实给出了PKCS5算法作为例子。有没有办法使用OpenSSL创建一个由DES密钥加密的PKCS8密钥?如果不是,它是OpenSSL不支持的还是一个非常不标准的事情? 下面是通过OpenSSL命令行(密码测试)使用基于密码的加密创建的示例: 这里是我手工制作

  • 问题内容: 我使用openssl生成认证密钥。这是我的命令: openssl genrsa -des3 -out enc_key.pem 1024 我导出到cer文件中,然后使用java keytool导入到Java keystore(jks)中。 密钥库听起来不错。我可以从Java应用程序加载密钥库。 问题是客户端连接到服务器(在这种情况下是FTP服务器,而不是Web服务器,而我使用apache

  • 我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id

  • 使用指定密码生成对称密钥,保存并返回ID。 调用: web3.shh.generateSymKeyFromPassword(password, [callback]) 参数: password:String - 用于生成对称密钥的密码 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为返回结果 返回值: String - 成功时返回ID,否则返回错误信息