【发布时间】:2019-06-25 18:00:58
【问题描述】:
即使它在try 块中有返回,它也会说缺少返回语句。我不明白。
我正在尝试制作一个 android 应用程序,并使用 android keystore 存储该应用程序的登录凭据。
另外,如果有人能给我一个简单的keystore 实现的例子,那就太好了。我找到了 2 个示例,它们不是很容易理解(缺少代码),也很难根据我的情况实施。
private SecretKey createKey() {
try {
KeyGenerator keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
keyGenerator.init(new KeyGenParameterSpec.Builder("Key", KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setUserAuthenticationRequired(true) //burayı kaldırırsan screen locka gerek kalmaz
.setUserAuthenticationValidityDurationSeconds(5)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
.build());
return keyGenerator.generateKey();
}
} catch (NoSuchAlgorithmException | NoSuchProviderException | InvalidAlgorithmParameterException e) {
throw new RuntimeException("Failed to create a symmetric key", e);
}
}
【问题讨论】:
-
另外添加 - 在您的方法定义中抛出 RuntimeException。
-
@Jay 如果你抛出异常,你不需要返回任何东西。当他投掷
RuntimeException。 -
@Jay,是的,我错过了那个。感谢您的澄清。干杯。
标签: android passwords keystore