gpt4 book ai didi

android - 深入理解 Android Fingerprint API authenticate()

转载 作者:行者123 更新时间:2023-11-29 19:45:32 25 4
gpt4 key购买 nike

我在 Android FingerPrint native API 上工作了几天,有两件事让我感到困惑。该文档有示例,但没有解释为什么我们需要以这种方式工作,所以请问这里有安全专家吗?

我想深入了解 API 的 authenticate() 函数,或者更具体地了解它采用的两个参数:CryptoObject处理程序。当将 null 传递给这两个参数时,它在我的 POV 上“完美”。所以其实有两个问题:为什么我们需要在调用身份验证时使用 CryptoObject 和/或 Handler(在什么情况下我们想要编码而不是使用主处理程序)?也许一些例子(甚至不是代码 - 但用例)。提前致谢。喜欢这个网站。

最佳答案

CryptoObject 让您签署数据。用于签署数据的 key 存储在设备上的安全硬件(安全元素)中。数据由此安全元件签名。 Secure Element 只有在指纹被识别时才能签署数据。 key 永远不会超出安全元件。请阅读此http://android-developers.blogspot.fr/2015/10/new-in-android-samples-authenticating.html

如果你只是想验证用户 CrytoObject 是不必要的。如果您想使用存储在安全存储(硬件中的安全元素)中的 key 来加密或解密数据,那么您可以使用 CryptoObject。只有在身份验证后,此安全 key 才可用于加密或解密数据。

Handler 您可以选择提供一个Handler。如果提供,FingerprintManager 将使用来自此 Handler 的 Looper 作为其内部 MyHandler 实例。

private void useHandler(Handler handler) { 
if (handler != null) {
mHandler = new MyHandler(handler.getLooper());
} else if (mHandler.getLooper() != mContext.getMainLooper()) {
mHandler = new MyHandler(mContext.getMainLooper());
}
}

提供循环程序允许我们定义要在哪个线程上运行并监听消息日志记录。

Looper looper = Looper.getMainLooper(); 
looper.setMessageLogging(new Printer() {
@Override
public void println(String x) {
Log.d(TAG, x);
}
});
mFingerprintManager.authenticate(cryptoObject, mCancellationSignal, 0, this, new Handler(looper));

请阅读此https://www.captechconsulting.com/blogs/introducing-androids-fingerprint-api

关于android - 深入理解 Android Fingerprint API authenticate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com