Cipher对象用于在指纹识别的对称加密实现中创建CryptoObject对象,这里,我们将使用私钥进行签名,并使用签名对象来创建CryptoObject对象:
// 使用私钥签名
try {
mKeyStore.load(null);
PrivateKey key = (PrivateKey) mKeyStore.getKey(KEY_NAME, null);
mSignature.initSign(key);
return true;
} catch (KeyPermanentlyInvalidatedException e) {
return false;
} catch (KeyStoreException | CertificateException | UnrecoverableKeyException | IOException
| NoSuchAlgorithmException | InvalidKeyException e) {
throw new RuntimeException("Failed to init Cipher", e);
}
类似地,调用新的FingerprintManager.CryptoObject(mSignature)方法创建一个CryptoObject对象.
此处使用的方法与上面“指纹识别的对称加密实现”中的调用方法相同,所有方法均调用FingerprintManager.authenticate()方法. 此处不再赘述.

监视回调也与上一个类似. 唯一的区别是识别成功后我们需要与背景进行交互,即onAuthenticationSucceeded()中的处理逻辑不同.
通常来说,为了提高安全性,要求用户在手机的“设置”中启用密码锁定屏幕功能. 当然,使用指纹解锁的前提是至少要输入一个指纹.
// 如果没有设置密码锁屏,则不能使用指纹识别
if (!keyguardManager.isKeyguardSecure()) {
Toast.makeText(this, "请在设置界面开启密码锁屏功能",
Toast.LENGTH_LONG).show();
}
// 如果没有录入指纹,则不能使用指纹识别
if (!fingerprintManager.hasEnrolledFingerprints()) {
Toast.makeText(this, "您还没有录入指纹, 请在设置界面录入至少一个指纹",
Toast.LENGTH_LONG).show();
}
此处使用两个类: KeyguardManager和FingerprintManager,前一个是与屏幕保护程序相关的类. 后者是指纹识别的核心类别.
如前所述,AuthenticationCallback类中有几种回调方法,我们的开发中使用了其中三种:
onAuthenticationError()
onAuthenticationSucceeded()
onAuthenticationFailed()
关于这三种回调方法,有几点要注意:
当指纹识别失败时,将调用onAuthenticationFailed()方法. 此时,指纹传感器未关闭. 系统为我们提供了5次重试机会,也就是说,连续调用onAuthenticationFailed()方法5次后安卓第一个指纹识别,将调用onAuthenticationError()方法.
当系统调用onAuthenticationError()和onAuthenticationSucceeded()时,传感器将关闭. 只有重新授权并再次调用authenticate()方法后,我们才能继续使用指纹识别功能.
当系统回调onAuthenticationError()方法以关闭传感器时,在这种情况下,再次调用authenticate()将具有一个禁用期,这意味着在此期间不能再次使用指纹识别. 当然,具体的禁止时间根据手机制造商的系统而略有不同,有些是1分钟,有些是30秒,依此类推. 此外,由于手机制造商系统的差异,在某些系统上调用onAuthenticationError()后,在禁用时间内无法使用其他APP中的指纹识别功能,甚至无法使用系统的指纹解锁功能. 在某些系统上,您可以在禁用时间内通过调用其他应用程序的指纹解锁功能或系统的指纹解锁功能来立即重置指纹识别功能.
最后,Android示例中指纹的示例代码地址如下:
对称加密: android-FingerprintDialog.
非对称加密方法: android-AsymmetricFingerprintDialog
参考链接: Android示例中的新增功能: 使用指纹API对远程服务器进行身份验证
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shouji/article-265423-2.html
很有可比性
显然对中方不利