Как использовать мобильный датчик отпечатков пальцев в пользовательском приложении
как сделать мобильные приложения, которые используют мобильный отпечаток пальца и хранят данные отпечатка пальца в базе данных sqlite и сравнивают их...
Что я уже пробовал:
keyguardManager =
(KeyguardManager) getSystemService(KEYGUARD_SERVICE);
fingerprintManager =
(FingerprintManager) getSystemService(FINGERPRINT_SERVICE);
охраняемых недействительными generateKey() {
пробовать {
keyStore = KeyStore. getInstance ("AndroidKeyStore");
} catch (исключение e) {
е.печатные();
}
пробовать {
keyGenerator = KeyGenerator. getInstance(
Ключевые свойства.KEY_ALGORITHM_AES,
"AndroidKeyStore");
} catch (NoSuchAlgorithmException |
NoSuchProviderException e) {
throw new RuntimeException(
"Не удалось получить экземпляр KeyGenerator", e);
}
пробовать {
хранилище ключей.нагрузки(нуль);
keyGenerator.init(новый
KeyGenParameterSpec.Строитель(KEY_NAME,
Ключевые свойства.PURPOSE_ENCRYPT |
Ключевые свойства.PURPOSE_DECRYPT)
. setBlockModes(KeyProperties.BLOCK_MODE_CBC)
. setUserAuthenticationRequired(true)
.setEncryptionPaddings(
Ключевые свойства.ENCRYPTION_PADDING_PKCS7)
.строить());
keyGenerator.generateKey();
} catch (NoSuchAlgorithmException |
InvalidAlgorithmParameterException
| CertificateException | IOException e) {
throw new RuntimeException(e);
}
}
@TargetApi(Build.VERSION_CODES.M)
публичный логический шифр() {
пробовать {
шифр = ключ к шифру.деыпзьапсе(
Ключевые свойства.KEY_ALGORITHM_AES + "/"
+ Ключевые свойства.BLOCK_MODE_CBC + "/"
+ Ключевые свойства.ENCRYPTION_PADDING_PKCS7);
} catch (NoSuchAlgorithmException |
NoSuchPaddingException е) {
throw new RuntimeException ("не удалось получить шифр", e);
}
пробовать {
хранилище ключей.нагрузки(нуль);
SecretKey key = (SecretKey) keyStore. getKey(KEY_NAME,
нулевой);
cipher. init(шифр.ENCRYPT_MODE, ключ);
вернуть true;
} поймать (е KeyPermanentlyInvalidatedException) {
возвращать false;
} catch (KeyStoreException | CertificateException
| UnrecoverableKeyException | IOException
| NoSuchAlgorithmException | InvalidKeyException e) {
throw new RuntimeException ("Failed to init Cipher", e);
}
}