如何在 android KeyStore 中生成 KeyPair,受自定义密码保护

Posted

技术标签:

【中文标题】如何在 android KeyStore 中生成 KeyPair,受自定义密码保护【英文标题】:How to generate KeyPair in android KeyStore, protected by custom password 【发布时间】:2017-03-25 17:13:38 【问题描述】:

我的应用程序使用指纹和 4 位密码(可由用户在应用程序设置中设置,这不是系统密码/模式/密码)授权。

有了指纹一切都很好,我的密码有问题。

我想做的是:

    让用户从应用设置中设置 pin 在密钥库中为某些受输入 pin 保护的别名生成密钥对(这样,没有此 pin 就无法访问私钥) 将公钥发送到服务器以供将来签名验证 从服务器获取用户令牌并将其存储在本地存储中

然后在授权期间:

    请求用户输入密码 通过输入的密码检索私钥 从本地存储中检索令牌 使用第 6 步中的私钥签署令牌 将其与签名数据一起发送到服务器 验证服务器上的签名,如果签名有效,则为用户打开会话。

我的问题是:如何生成受用户输入的密码保护的密钥对

附:对于fingerprint,此逻辑由以下人员处理:

KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN).setUserAuthenticationRequired(true)

【问题讨论】:

您好,您找到解决方案了吗? 【参考方案1】:

我会建议尝试使用这个帖子Use the android KeyStore to securely store arbitrary strings 帖子。

这篇文章涵盖了

    在设备上生成、安全存储和检索加密密钥。

    加密任意数据并将其保存在设备上。

    访问和解密数据以供后续使用。

我希望它会有所帮助。

【讨论】:

以上是关于如何在 android KeyStore 中生成 KeyPair,受自定义密码保护的主要内容,如果未能解决你的问题,请参考以下文章

Hbuilder打包时Android的keystore怎么生成

keystore是怎么生成的

Uniapp接入 Android原生插件

Uniapp接入 Android原生插件

如何将android项目打包成apk

如何将Android程序打包成apk文件