标签: android-biometric

将自定义布局添加到生物识别提示

有什么方法可以将我们自己的自定义布局添加到生物识别提示中,因为我已经看到了各种类似的线程,但似乎还没有为其提供解决方案,并且不推荐使用指纹管理器,所以我不想使用它。

android android-fingerprint-api android-biometric-prompt android-biometric

5
推荐指数
1
解决办法
2159
查看次数

如何在 Android 上保存并比较 2 个指纹

我想将指纹集成到我的项目的身份验证过程中,然后保存并比较该指纹。

我尝试过集成几段代码,但到目前为止还没有成功。如何在 Android 应用程序中保存和比较指纹?

security android biometrics fingerprint android-biometric

5
推荐指数
1
解决办法
1040
查看次数

添加新生物识别信息时使 SecretKey 无效

我遇到了一个问题,当用户向其 Android 设备添加新指纹时,我想使 SecretKey 失效。我可以毫无问题地生成密钥、调出生物识别提示。当我添加新指纹时,密钥不会引发异常..它仍然允许出现提示。

我可以从设备中删除所有指纹,并引发 KeyPermanentlyInvalidatedException。

我正在使用 BiometricPrompt AndroidX 库,并将 minSDK 设置为 28。我一直在遵循本指南:https ://developer.android.com/training/sign-in/biometric-auth#crypto

我的代码如下 - 如果有人愿意帮助我解决这个问题,我将非常感激。

package com.example.dogtime

import android.os.Bundle
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyPermanentlyInvalidatedException
import android.security.keystore.KeyProperties
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import androidx.biometric.BiometricPrompt
import androidx.core.content.ContextCompat
import butterknife.ButterKnife
import java.security.KeyStore
import javax.crypto.Cipher
import javax.crypto.KeyGenerator
import javax.crypto.SecretKey


class MainActivity : AppCompatActivity() {

    private lateinit var biometricPrompt: BiometricPrompt
    private lateinit var biometricPromptInfo: BiometricPrompt.PromptInfo

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ButterKnife.bind(this)
        setContentView(R.layout.activity_main)

        // Set up prompt
        biometricPrompt = BiometricPrompt(
            this,
            ContextCompat.getMainExecutor(baseContext),
            object …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-keystore android-biometric-prompt android-biometric

5
推荐指数
1
解决办法
1388
查看次数

检测设备是用密码锁还是人脸锁的指纹锁保护的?

我的应用程序包含登录的用户身份验证(包括 pin/图案、指纹解锁),这取决于设备安全性。我正在使用生物识别管理器来使用BiometricManager检测设备是否支持指纹,并使用isDeviceSecure()检查设备是否受到保护。我需要检测移动设备在哪种模式下受到保护,无论是使用引脚/图案、使用指纹的引脚/图案、使用面部解锁的引脚/图案还是所有三种模式(引脚/图案、面部解锁、指纹)。

android android-fingerprint-api android-biometric-prompt android-biometric

5
推荐指数
1
解决办法
1561
查看次数

如何检查 API 级别 28+ 支持哪些生物识别技术?

我想检查 API 级别为 28+ 的 Android 设备支持哪些生物识别技术,以便能够向用户显示相关文本。例如“指纹登录”、“人脸登录”、“虹膜登录”、“启用指纹登录”、“启用人脸登录”等。

我正在使用BiometricManager.canAuthenticate()来确定是否可以使用生物识别技术。对于 28 之前的版本在内部BiometricManager使用,FingerprintManagerCompat所以我知道如果结果是BIOMETRIC_SUCCESS设备使用指纹。

有没有办法知道支持哪些生物识别技术——指纹、面部、虹膜?也许某些设备可以支持多个。

android biometrics android-biometric

3
推荐指数
2
解决办法
2427
查看次数

使用设备凭据时,AuthenticationCallback 中的 Android 生物识别身份验证无效变量

我正在使用 androidx.biometric:biometric:1.0.1一切正常,但是当我的设备没有生物识别传感器时(或者当用户没有设置他的指纹等)并且我在进行身份验证后尝试使用DeviceCredentials 时,我的功能输入数据无效。

class MainActivity : AppCompatActivity() {

    private val TAG = MainActivity::class.java.name

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<View>(R.id.first).setOnClickListener {
            authenticate(MyData(1, "first"))
        }

        findViewById<View>(R.id.second).setOnClickListener {
            authenticate(MyData(2, "second"))
        }
    }

    private fun authenticate(data: MyData) {
        Log.e(TAG, "starting auth with $data")
        val biometricPrompt = BiometricPrompt(
            this,
            ContextCompat.getMainExecutor(this),
            object : BiometricPrompt.AuthenticationCallback() {
                override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
                    Log.e(TAG, "auth done : $data")
                }
            })

        val promptInfo = BiometricPrompt.PromptInfo.Builder()
            .setDeviceCredentialAllowed(true)
            .setTitle("title")
            .build()
        biometricPrompt.authenticate(promptInfo)
    }
}

data class MyData(
    val …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-biometric-prompt android-biometric

3
推荐指数
1
解决办法
2586
查看次数

Android 生物识别:IllegalStateException。必须至少注册一项生物识别才能创建需要用户身份验证的密钥

我正在使用 android Biometricx 库进行面部和指纹认证。当仅注册 FaceID 并且我尝试创建密钥时,我收到“ IllegalStatException:必须至少注册一个生物识别才能创建需要用户身份验证的密钥

我正在尝试像这样创建secretKey

            try {
                
                mKeyGenerator.init(new KeyGenParameterSpec.Builder(KEY_NAME,
                        KeyProperties.PURPOSE_ENCRYPT |
                                KeyProperties.PURPOSE_DECRYPT)
                        .setBlockModes(KeyProperties.BLOCK_MODE_CBC)
                        // Require the user to authenticate with a fingerprint to authorize every use
                        // of the key
                        .setUserAuthenticationRequired(true)
                        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
                        .build());
                secretKey = mKeyGenerator.generateKey();
            } catch (NoSuchAlgorithmException | InvalidAlgorithmParameterException
                    | CertificateException | IOException e) {
                Toast.makeText(this,"Create Key "+ e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
            }
Run Code Online (Sandbox Code Playgroud)

注册指纹后,代码工作正常。只有在注册 FaceId 时才会发生这种情况。我在这里缺少什么?

android androidx android-biometric-prompt android-biometric

3
推荐指数
1
解决办法
559
查看次数

如何替换已弃用的 KeyGenParameterSpec.Builder.setUserAuthenticationValidityDurationSeconds?

从 android 11 开始,setUserAuthenticationValidityDurationSeconds 已被弃用,取而代之的是 KeyGenParameterSpec.Builder 中的 setUserAuthenticationParameters,但接缝处对以前的版本有任何支持。

那么,最好的解决方案是什么?

KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder(...)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R)
    builder.setUserAuthenticationParameters(timeout, KeyProperties.AUTH_DEVICE_CREDENTIAL | KeyProperties.AUTH_BIOMETRIC_STRONG);
else
    //noinspection deprecation
    builder.setUserAuthenticationValidityDurationSeconds(timeout);
Run Code Online (Sandbox Code Playgroud)

这个?

security android android-keystore android-biometric-prompt android-biometric

3
推荐指数
1
解决办法
2859
查看次数