我正在尝试使用EncryptedSharedPreferences
以更安全的方式编辑用户的共享首选项集
private fun provideSecureSharedPreference(context: Context): SharedPreferences {
val masterKey = MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build()
return EncryptedSharedPreferences.create(
context, "secret_shared_prefs", masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
}
当我使用minifyEnabled false
时,它运行得很好。现在我尝试通过执行minifyEnabled true
来混淆代码
为了避免其他错误,现在我只在proguard-rules.pro
文件中放置了以下行
-dontobfuscate
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
但问题是当我设置minifyEnable true
时
java.io.FileNotFoundException: can't read keyset; the pref value __androidx_security_crypto_encrypted_prefs_key_keyset__ does not exist
我尝试从Stackoverflow和其他渠道搜索旧帖子,但无法找到解决方案。寻求帮助,谢谢。
1条答案
按热度按时间q9rjltbz1#
我设法摆脱了这条消息:
java.io.FileNotFoundException:无法读取键集;首选值androidx_security_crypto_encrypted_prefs_key_keyset不存在
通过使用1.1.0-alpha 06版本,它说:
将Tink依赖性更新到1.8.0
因此,将此添加到您的应用程序
build.gradle
:另一种选择是使用加密稳定1.0.0版本和Tink 1.8.0版本,直到
security-crypto:1.1.0
发布: