java - 如何在 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
解决方案
推荐阅读
- sql - 嵌套聚合函数
- php - 将 SQL SELECT 语句放入 PHP 变量中的正确方法,其中另一个 PHP 变量作为 WHERE
- elasticsearch - Elasticsearch 顶级聚合/搜索正文元数据
- reactjs - React JS 我可以在网站上的多个应用程序中使用 React
- angular - 角 10 | ngrx 效果 | 单元测试 | 不能将类作为函数调用
- c# - 在 asp.net core mvc 中的页面加载时不会调用添加的中间件
- javascript - 如何在单击时将选择选项设置为与单击按钮的数据目标相同的数据目标?
- c# - 通过调试器部署时方法正常工作,但导出 APK 时相同方法不工作
- python - 尝试解决 CartPole-v0 的交叉熵方法中的神经网络输出问题
- python - 如何修复 django 中的无反向匹配?