EncryptedSharedPreferences

EncryptedSharedPreferences

我使用androidx.security:security-crypto:1.0.0-alpha02 lib中的EncryptedSharedPreferences来存储一些 token 。如果我使用prefs.edit().remove("token")).apply()prefs.edit().remove("token")).commit(),则 token 将被删除。但是,如果我尝试使用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):



更新2020年2月7日
我在Google Bugtracker(https://issuetracker.google.com/issues/138314232)中创建了一个故障单,但他们无法修复它。

最佳答案

一种解决方案是使用标准的非安全首选项管理器清除首选项。
PreferenceManager.getDefaultSharedPreferences(context).edit().clear().apply();
这将清除所有首选项。

10-04 12:34