我遇到了一个问题,当用户向其 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