深入了解 Android 指纹 API authenticate()
Understanding Android Fingerprint API authenticate() in depth
我正在研究 Android FingerPrint native API 几天,有两件事让我感到困惑。该文档有示例,但没有解释为什么我们需要这样工作,所以请问这里有安全专家吗?
我想深入了解 API 的 authenticate()
功能,或者更具体地了解它采用的两个参数:CryptoObject
和 Handler
。当将 null
传递给这两个参数时,它在我的 POV 上工作“perfect”。所以其实有两个问题:
为什么我们需要在调用认证时使用 CryptoObject and/or Handler(在什么情况下我们要编码而不使用主处理程序)?也许一些例子(甚至不是代码 - 但用例)。提前致谢。喜欢这个网站。
CryptoObject 让您签署数据。用于签署数据的密钥存储在设备上的安全硬件(安全元素)中。数据由此安全元件签名。 Secure Element 只有在指纹被识别时才能签署数据。密钥永远不会超出安全元件。
请阅读此 http://android-developers.blogspot.fr/2015/10/new-in-android-samples-authenticating.html
如果你只是想验证一个用户 CrytoObject
是不必要的。如果您想使用存储在安全存储(硬件中的安全元素)中的密钥来加密或解密数据,那么您可以使用 CryptoObject
。此安全密钥仅在身份验证后才可用于加密或解密数据。
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 FingerPrint native API 几天,有两件事让我感到困惑。该文档有示例,但没有解释为什么我们需要这样工作,所以请问这里有安全专家吗?
我想深入了解 API 的 authenticate()
功能,或者更具体地了解它采用的两个参数:CryptoObject
和 Handler
。当将 null
传递给这两个参数时,它在我的 POV 上工作“perfect”。所以其实有两个问题:
为什么我们需要在调用认证时使用 CryptoObject and/or Handler(在什么情况下我们要编码而不使用主处理程序)?也许一些例子(甚至不是代码 - 但用例)。提前致谢。喜欢这个网站。
CryptoObject 让您签署数据。用于签署数据的密钥存储在设备上的安全硬件(安全元素)中。数据由此安全元件签名。 Secure Element 只有在指纹被识别时才能签署数据。密钥永远不会超出安全元件。 请阅读此 http://android-developers.blogspot.fr/2015/10/new-in-android-samples-authenticating.html
如果你只是想验证一个用户 CrytoObject
是不必要的。如果您想使用存储在安全存储(硬件中的安全元素)中的密钥来加密或解密数据,那么您可以使用 CryptoObject
。此安全密钥仅在身份验证后才可用于加密或解密数据。
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