使用指纹认证作为 KeyGuard 解锁而不是模式
Use fingerprint auth as KeyGuard unlock instead of a pattern
我想允许用户使用指纹作为登录选项。
我现在发现的是我们可以使用指纹作为身份验证,但问题是它与我的应用程序使用的密码无关,并且在我的应用程序中我需要允许多用户登录。
我想做的是使用 Android Key Store 生成 SecretKey 并需要指纹才能使用它 setUserAuthenticationRequired(true)
然后在第一次加密密码并存储在 Share Preferences 稍后获取它并从 Android 密钥存储和解密问题是 KeyGuardManager 默认情况下只允许模式解锁,我找不到如何使用指纹代替从 Android 密钥存储
中获取 SecretKey
我使用这个库来实现:
https://github.com/JesusM/FingerprintManager
我所做的是在第一次成功登录后向用户显示一个对话框,要求他保存指纹,然后我加密他的密码并将其存储在共享首选项中(使用盐)。下次我用指纹解密然后登录
我使用 FingerprintManager.AuthenticationCallback
来确保指纹是正确的,并且只有在该用户使用来自 KeyStore
的密钥之后。
在密钥库中创建密钥时,您可以在最后一次指纹验证后为其有效性设置超时。
我想允许用户使用指纹作为登录选项。
我现在发现的是我们可以使用指纹作为身份验证,但问题是它与我的应用程序使用的密码无关,并且在我的应用程序中我需要允许多用户登录。
我想做的是使用 Android Key Store 生成 SecretKey 并需要指纹才能使用它 setUserAuthenticationRequired(true)
然后在第一次加密密码并存储在 Share Preferences 稍后获取它并从 Android 密钥存储和解密问题是 KeyGuardManager 默认情况下只允许模式解锁,我找不到如何使用指纹代替从 Android 密钥存储
我使用这个库来实现: https://github.com/JesusM/FingerprintManager
我所做的是在第一次成功登录后向用户显示一个对话框,要求他保存指纹,然后我加密他的密码并将其存储在共享首选项中(使用盐)。下次我用指纹解密然后登录
我使用 FingerprintManager.AuthenticationCallback
来确保指纹是正确的,并且只有在该用户使用来自 KeyStore
的密钥之后。
在密钥库中创建密钥时,您可以在最后一次指纹验证后为其有效性设置超时。