我正在设置Android KeyStore,以保护应用程序中的敏感数据。这是我初始化KeyStore的方法
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
然后我生成如下密钥。
keyGenerator.init(new KeyGenParameterSpec.Builder(alias,
KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
.build());
keyGenerator.generateKey();
并使用
加密数据final Cipher cipher = Cipher.getInstance(mTransformation);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
mIV = cipher.getIV();
byte[] bytes = cipher.doFinal(data.getBytes("UTF-8"));
return Base64.encodeToString(bytes, Base64.DEFAULT);
我的问题是,如果用户尚未设置锁定屏幕,则KeyStore仍可以按预期工作吗?我是使用KeyStore的Android安全性的新手,所以如果我错了,请更正我。我见过类似的KeyStore应用程序,它们提示用户在访问任何敏感数据之前将其密码重新输入到设备锁定屏幕上。
您如何考虑尚未设置锁定屏幕的用户?