【发布时间】:2019-12-03 18:56:32
【问题描述】:
我使用 androidx.security:security-crypto:1.0.0-alpha02 库中的 EncryptedSharedPreferences 来存储一些令牌。如果我使用prefs.edit().remove("token")).apply() 或prefs.edit().remove("token")).commit(),则删除令牌。但是,如果我尝试使用clear() 方法立即清除首选项,则不会发生任何事情。
此调用:prefs.edit().clear().commit() 甚至返回 false。
我通过使用这种方法获得了 EncryptedSharedPreferences:
private fun getPrefs(): SharedPreferences {
val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
return EncryptedSharedPreferences.create(
"myPrefs",
masterKeyAlias,
context,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
}
我是否必须以其他方式清除 EncryptedSharedPreferences?
文档说 (https://developer.android.com/reference/androidx/security/crypto/EncryptedSharedPreferences) :
// 像往常一样使用共享首选项和编辑器 SharedPreferences.Editor 编辑器 = sharedPreferences.edit();
更新 07.02.2020 我在 google bugtracker (https://issuetracker.google.com/issues/138314232) 中创建了一个 bug 票,但他们不会修复它......
【问题讨论】:
-
EncrypedSharedPreferences是一个新的 api,它可能是一个错误。查看问题跟踪器:issuetracker.google.com/issues?q=EncryptedSharedPreferences 如果没有错误,则为其创建票证。 -
@GiorgosNeokleous 我什么也没找到并创建了一张新票。感谢您的链接。
-
这方面有什么更新吗?我面临同样的问题。获取异常,java.lang.SecurityException:无法解密密钥。解密失败
-
@Tony 更新了帖子...
标签: android kotlin sharedpreferences androidx