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

Dad*_*oid 6 android keystore key-pair android-fingerprint-api

我有app使用指纹和4位数针(可以由用户在应用程序设置中设置,这不是系统管脚/模式/密码)授权.

使用指纹一切都很好,我的针有问题.

我想要做的是:

  1. 让用户从应用程序设置中设置引脚
  2. 在密钥库中为输入引脚保护的某些别名生成密钥对(以便在没有此引脚的情况下无法访问私钥)
  3. 将公钥发送到服务器以供将来签名验证
  4. 从服务器获取用户令牌并将其存储在本地存储中

然后在授权期间:

  1. 请求用户输入引脚
  2. 通过输入的引脚检索私钥
  3. 从本地存储中检索令牌
  4. 使用步骤6中的私钥对令牌进行签名
  5. 使用签名数据将其发送到服务器
  6. 验证服务器上的签名,如果有效,则打开用户的会话.

我的问题是:如何生成由用户输入的pin保护的KeyPair

PS对于指纹,此逻辑由以下方式处理:

KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN).setUserAuthenticationRequired(true)
Run Code Online (Sandbox Code Playgroud)

Nit*_*nde 0

我建议尝试使用这篇文章Use the Android KeyStore to securely store random strings post。

这篇文章涵盖了以下几点:

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

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

  3. 访问并解密数据以供后续使用。

我希望它会有所帮助。