首页 > 解决方案 > 如何在 AndroidKeyStore 中存储对称密钥?

问题描述

所以,我的 Android 应用程序中有一个 PBE。我还使用用户提供的密码生成了一个对称密钥。现在我想将它安全地存储在 AndroidKeyStore 中

AndroidKeyStore 有一个功能:setKeyEntry (String alias, Key key, char[] password, Certificate[] chain) 但问题是我在使用它时收到一条错误消息:

java.security.KeyStoreException: Protection parameters must be specified when importing a symmetric key

我检查了android.security.keystore.AndroidKeyStoreSpi.java文件(它在后台使用),显然保护参数应该在后台传递给一个名为setSecretKeyEntry. 但是传递了一个空值,如下所示:

调用setSecretKeyEntry方法的AndroidKeyStoreSpi.java代码图

有人对如何解决问题有任何建议吗?或者除了 AndroidKeyStore 之外还有其他存储密钥的方法吗?任何帮助将不胜感激<3

如果你们想检查 AndroidKeyStoreSpi.java 代码,它在这里: https ://android.googlesource.com/platform/frameworks/base/+/refs/heads/android10-security-release/keystore/java/android/security /keystore/AndroidKeyStoreSpi.java

标签: javaandroidkotlinsecuritykeystore

解决方案


推荐阅读