gpt4 book ai didi

java - 我的设备如何以及在何处存储指纹结果并与下次解锁尝试相匹配?

转载 作者:行者123 更新时间:2023-12-02 09:22:34 25 4
gpt4 key购买 nike

我知道许多人质疑如何保存或导出新的指纹并存储,答案是“否”。我的问题是我的Android设备在哪里存储扫描的指纹数据,以及哪种格式以及与新扫描的指纹如何匹配。

我也知道这一点:分析指尖的扫描以获得某些控制点,并生成一个类似于密码哈希的令牌。

它通过以下方式生成哈希:

KeyStore mKeyStore;
String KEY_NAME = UUID.randomUUID().toString();
Cipher mCipher;
mKeyStore = KeyStore.getInstance("AndroidKeyStore");
keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");

keyGenerator.init(new
KeyGenParameterSpec.Builder(KEY_NAME,
KeyProperties.PURPOSE_ENCRYPT |
KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setUserAuthenticationRequired(true)
.setEncryptionPaddings(
KeyProperties.ENCRYPTION_PADDING_PKCS7)
.build());
keyGenerator.generateKey();

mCipher = Cipher.getInstance(
KeyProperties.KEY_ALGORITHM_AES + "/"
+ KeyProperties.BLOCK_MODE_CBC + "/"
+ KeyProperties.ENCRYPTION_PADDING_PKCS7);

SecretKey key = (SecretKey) mKeyStore.getKey(KEY_NAME, null);
mCipher.init(Cipher.ENCRYPT_MODE, key);


我已经使用过此 https://github.com/googlesamples/android-FingerprintDialog,但这仅提供与以前记录的数据的匹配。

是否在编辑/提取或使用此哈希并将其存储在其他地方,并在存储Android的安全密钥(假定所有密钥都相同)的同时尝试将新生成的哈希与此匹配,这是否可行?

最佳答案

KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
KeyStore.Entry entry = ks.getEntry(alias, null);
if (!(entry instanceof PrivateKeyEntry)) {
Log.w(TAG, "Not an instance of a PrivateKeyEntry");
return null;
}

Signature s = Signature.getInstance("SHA256withECDSA");
s.initSign(((PrivateKeyEntry) entry).getPrivateKey());
s.update(data);
byte[] signature = s.sign();
boolean valid = s.verify(signature);


参见: https://developer.android.com/training/articles/keystore#java

参见: Android - Where and how securely is fingerprint information stored in a device

我看到了这个,但不能说有帮助

关于java - 我的设备如何以及在何处存储指纹结果并与下次解锁尝试相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582577/

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