问题标签 [android-biometric]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 列出 Android 中已注册的生物特征(和类型)
有没有一种方法可以确定用户在设备上注册了哪些类型的生物特征?使用场景:生物识别登录按钮应显示为带有适当文本的面部或指纹图标。在这种情况下,仅确定设备上是否可用其中一个或另一个是不够的,而是要真正知道是否存在已注册的生物特征。
kotlin - 使用非对称用户授权保护的密钥库密钥加密大字符串时出现问题
我正在尝试为 JWToken 的加密和解密实现生物特征认证。用户在服务器上进行身份验证后,将接收并加密令牌。令牌的加密应该允许在设备上没有生物特征用户授权的情况下进行。只有解密操作需要生物识别设备授权。这就是我为此使用非对称密钥的原因。然而,我收到的令牌大约是 1000 字节,因此不能用非对称密钥加密。这就是为什么我为解密和加密操作创建一个对称密钥,并使用授权保护的非对称密钥包装和解包这个密钥。但是,尝试使用非对称公钥包装对称密钥会引发 InvalidKeyException,并显示消息:javax.crypto.BadPaddingException。尝试用非对称私钥包装对称密钥这次也会抛出 InvalidKeyException 并显示简短消息:无法解开密钥。当我 setUserAuthenticationRequired 为 false 时,非对称私钥可以很好地用于包装。我在这里做错了什么?
当我切换到使用私钥解包时,如下所示
我得到以下堆栈跟踪
我认为这是因为我 setUserAuthenticationRequired 为 true ,因为当我将其设置为 false 时,一切都加密得很好。但是,正如您从 stackstrace 中看到的那样,没有记录异常。是否有任何其他原因导致 setUserAuthenticationRequired 为 true 时会失败?
android - 在装有 Android Q 的三星 Galaxy M01 设备中未检测到生物特征?
以下是我检测生物识别功能的代码
我已添加 <uses-permission android:name="android.permission.USE_BIOMETRIC" />
到清单文件并添加implementation 'androidx.biometric:biometric:1.0.1'
到 gradle
我的代码仍然无法检测到生物识别提示。我已经在我的手机上启用了人脸识别,但是当我打开我的应用程序时它不起作用。它适用BIOMETRIC_ERROR_HW_UNAVAILABLE
于我的代码。
android - 如何使用 BiometricPrompt 和 CryptoObject 同时获得解密和加密的 KeyStore 访问权限?
问题描述:使用BiometricPrompt认证访问Android KeyStore时,每次需要对KeyStore进行读写操作时都会出现BiometricPrompt。我正在寻找一种解决方案,只进行一次身份验证,然后按照我的意愿操作密钥库中的数据,其方式与在 iOS KeyChain 上完成的方式类似。
我已经为 Android 实现了生物特征认证,因此我可以通过在 KeyStore 参数构建器上调用 setUserAuthenticationRequired(true) 将应用程序 API AuthRefreshToken 存储在由生物特征认证保护的应用程序 KeyStore 中(见下文)。我遵循了 Google ( https://github.com/android/security-samples/tree/main/BiometricLoginKotlin ) 和其他开发人员的示例,并使解决方案成功运行。我现在正在尝试在第二个工作日解决上述问题,但没有成功,现在考虑在没有 CryptoObject 的情况下使用 BiometricPrompt,这将是一个很大的失望。我怀疑有一种方法可以在一段时间内进行一次身份验证,也许是通过设置paramsBuilder.setUserAuthenticationValidityDurationSeconds(30)
,但我无法达到预期的结果。
要访问 KeyStore 并读取 API AuthRefreshToken,我使用以下代码:
一切正常,我得到了解密的数据。但是,在使用 AuthRefreshToken 对应用程序 API 进行每次身份验证后,令牌会发生变化,我必须立即将其保存回 KeyStore。发生这种情况时,我使用下面的代码,它再次显示 BiometricPrompt。这会导致 UI 流显示 BiometricPrompt 两次:
如何使用 BiometricPrompt 一次进行身份验证,以便在不多次调用 BiometricPrompt 的情况下对 KeyStore 具有完整的读/写访问权限,例如 1 分钟或更长时间?
我尝试了不同的方法并尝试重新创建密码或重新初始化它以用于不同的目的,但是在所有这些和类似的尝试中,我收到Javax.Crypto.IllegalBlockSizeException
消息“密钥用户未通过身份验证”
密钥库初始化如下:
android - 有没有办法使用生物识别传感器在 Android Studio 中显示您的指纹?
正如标题所说,下一个问题是:那么,有没有办法使用生物识别传感器在 Android Studio 中显示您的指纹?
我的问题是因为前一段时间我正在填写一些表格,我需要我的指纹来完成它,我家里没有指纹读取器,但我的手机有一个。我试图找到一个应用程序,但没有找到任何应用程序。所以,我不得不用墨水弄湿我的手指,然后按一张纸来获取我的指纹。我认为必须有一种方法,所以你们中的任何人都可以帮助我吗?此代码仅供个人使用。
事先非常感谢您...
android - 添加新的生物特征时使 SecretKey 无效
我遇到了一个问题,当用户向他们的 Android 设备添加新指纹时,我想使 SecretKey 无效。我可以生成密钥,毫无问题地拉出生物识别提示。当我添加新指纹时,密钥不会引发异常..它仍然允许出现提示。
我可以从设备中删除所有指纹,并引发 KeyPermanentlyInvalidatedException。
我正在使用 BiometricPrompt AndroidX 库,我的 minSDK 设置为 28。我一直在遵循本指南:https ://developer.android.com/training/sign-in/biometric-auth#crypto
我的代码如下 - 如果有人愿意帮助我解决这个问题,我将非常感激。
android - 检测设备是用针锁或面部锁的指纹锁保护的吗?
我的应用程序包含用于登录的用户身份验证(包括密码/图案、指纹解锁),这取决于设备安全性。我正在使用生物识别管理器来检测设备是否使用BiometricManager支持指纹,并使用isDeviceSecure()检查设备是否受到保护。我需要检测在哪种模式下移动设备受到保护,无论是针/图案、带指纹的针/图案、带面部解锁的针/图案还是所有三种模式(针/图案、面部解锁、指纹)。
android-biometric - 我可以获得存储指纹的标识符吗?
我想通过实现需要一系列特定顺序指纹的身份验证方法来提高我的 android 设备的安全级别。例如:指针更细、中指、小指 为了完成这项工作,我需要能够为成功验证的 fprint 获取唯一标识符。
因此,如果我收到手指与 fprintX 成功匹配的结果,我就可以实现这样的功能。
这适用于今天的生物识别身份验证 API 吗?
android - AndroidX BiometricPrompt API 是否可以识别设备中注册的新面孔?
我正在使用 AndroidX BiometricPrompt API 来验证用户是否使用他们注册的指纹或面部 ID 来使用我的应用程序。
由于指纹认证可以与加密对象一起使用,并且密钥存储在密钥库中。当新指纹注册时,密钥将失效,当用户尝试登录应用程序时,系统会提示用户再次注册生物识别登录。
我需要在应用程序中实现面容 ID 身份验证的类似功能,但没有找到与在 android 设备/API 中识别新面容 ID 注册相关的任何内容。
请求您的输入以实施新的 Face ID 注册,这将使用户使用 Face ID 登录无效并要求他再次注册。
提前致谢。
android - 如何使用 BiometricPrompt 实现自定义指纹 UI
我们可以在 FingerprintManager Api 中提供自定义 UI,但在 API 级别 28 中已弃用。现在 android 提供了 BiometricPrompt API,它提供了默认的指纹对话框。我浏览了许多文章、博客和教程,但没有找到任何添加自定义 UI 而不是默认对话框的解决方案。任何建议或方法都会有所帮助。
谢谢!!