使用指纹身份验证作为KeyGuard解锁而不是模式

时间:2018-05-30 08:11:26

标签: android encryption fingerprint

我想允许用户使用指纹作为登录选项。 我现在发现的是我们可以使用指纹作为身份验证,但问题是它与我的应用程序使用的密码无关,而在我的应用程序中我需要允许多用户登录。 我想做的是使用Android密钥存储生成SecretKey并要求指纹使用它setUserAuthenticationRequired(true)然后在第一次加密密码并存储在共享首选项中以后获取它并从Android密钥存储区获取SecretKey并解密问题是KeyGuardManager默认只允许模式解锁,我找不到如何使用指纹代替从Android密钥库中获取SecretKey

2 个答案:

答案 0 :(得分:0)

我使用这个lib来实现: https://github.com/JesusM/FingerprintManager

我做的是在第一次成功登录后向用户显示一个对话框,要求他保存指纹,然后我加密他的密码并将其存储在共享首选项中(使用盐)。下次我用指纹解密并登录。

答案 1 :(得分:0)

我使用FingerprintManager.AuthenticationCallback来确保指纹是正确的,并且仅在该用户使用KeyStore中的密钥之后。 在密钥存储区中创建密钥时,您可以设置上次指纹认证后其有效性的超时时间。