指纹中的Android CryptoObject用法

Din*_* Tw 9 android cryptography fingerprint

在Android指纹示例代码FingerprintDialog中,启动指纹硬件FingerprintManager#authenticate的方法采用FingerprintManager.CryptoObject的参数.根据文档,它是object associated with the call or null if none required.对我来说,描述仍然不明确.有人会解释我应该或不应该使用加密谢谢.

And*_*oob 11

Android示例中提供的FingerprintDialog示例有点密集,所以让我们分解正在发生的事情:

  1. 配置并生成加密密钥.在此步骤中,您可以指定仅在以下情况下才能使用密钥KeyGenParameterSpec.Builder.setAuthenticated(true).
  2. 使用cipherMode(加密/解密)和从步骤1生成的密钥初始化Cipher对象
  3. 使用FingerprintCrypto.CryptoObject()步骤2中的密码初始化a
  4. 启动指纹扫描程序并通过调用从步骤3传入CryptoObject FingerprintManager.authenticate()
  5. 用户使用指纹成功验证.Android操作系统会将密钥中的"已验证"位设置为0到1.
  6. 现在密钥已经过身份验证,可以通过调用来进行任何加密操作Cipher.doFinal().

如果试图通过传递修改第4步nullFingerprintManager.authenticate(),然后一步,因为你还没有被验证使用密钥6将失败.

希望有所帮助.