studio - Uso de Android CryptoObject en huella digital
lector biometrico android (1)
En el código de muestra de huellas dactilares de Android FingerprintDialog , el método que inicia el hardware de huellas digitales FingerprintManager # authenticate toma un parámetro de FingerprintManager.CryptoObject . Según la documentación, es el object associated with the call or null if none required
. La descripción aún no está clara para mí. ¿Alguien me explicaría cuándo debería o no debería usar crypto? Gracias.
El ejemplo de FingerprintDialog proporcionado en las muestras de Android es un poco denso, así que analicemos lo que está sucediendo:
- Configurar y generar claves criptográficas. En este paso, puede especificar que la clave solo se puede usar si
KeyGenParameterSpec.Builder.setAuthenticated(true)
. - Inicialice un objeto Cipher con el modo cifrado (encriptar / descifrar) y la clave generada desde el paso 1
- Inicialice un
FingerprintCrypto.CryptoObject()
con el Cipher del Paso 2 - Inicie el escáner de huellas digitales y pase el CryptoObject desde el paso 3 llamando a
FingerprintManager.authenticate()
- El usuario se autentica con éxito con su huella digital. El sistema operativo Android configurará el bit "autenticado" en la clave de 0 a 1.
- Ahora que la clave se ha autenticado para su uso, se puede usar para realizar cualquier operación de cifrado llamando a
Cipher.doFinal()
.
Si intenta modificar el paso 4 pasando null
a FingerprintManager.authenticate()
, el paso 6 fallará porque no se ha autenticado para usar la clave.
Espero que ayude.