【发布时间】:2017-03-25 17:13:38
【问题描述】:
我的应用程序使用指纹和 4 位密码(可由用户在应用程序设置中设置,这不是系统密码/模式/密码)授权。
有了指纹一切都很好,我的密码有问题。
我想做的是:
- 让用户从应用设置中设置 pin
- 在密钥库中为某些受输入 pin 保护的别名生成密钥对(这样,没有此 pin 就无法访问私钥)
- 将公钥发送到服务器以供将来签名验证
- 从服务器获取用户令牌并将其存储在本地存储中
然后在授权期间:
- 请求用户输入密码
- 通过输入的密码检索私钥
- 从本地存储中检索令牌
- 使用第 6 步中的私钥签署令牌
- 将其与签名数据一起发送到服务器
- 验证服务器上的签名,如果签名有效,则为用户打开会话。
我的问题是:如何生成受用户输入的密码保护的密钥对
附:对于fingerprint,此逻辑由以下人员处理:
KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN).setUserAuthenticationRequired(true)
【问题讨论】:
-
您好,您找到解决方案了吗?
标签: android keystore key-pair android-fingerprint-api