没有 MasterKeys.getOrCreate() 的 EncryptedSharedPreferences

ser*_*ek8 6 security android keystore

我发现使用 EncryptedSharedPreferences 的默认方法是为它创建带有 MasterKeys 的密钥。但是,当我替换val masterKeyAlias = MasterKeys.getOrCreate()为示例字符串时,例如val masterKeyAlias = "test_key"它仍然有效并且文件无论如何都会被加密。在文档中,如果密钥库中的密钥不存在,我将找不到任何有关自动创建密钥的信息。在这里使用 MasterKeys.getOrCreate 有什么好处?

val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
// val masterKeyAlias = "test_key"
EncryptedSharedPreferences.create(
            "encrypted_preferences", // fileName
            masterKeyAlias, // masterKeyAlias
            this, // context
            EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, // prefKeyEncryptionScheme
            EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM // prefvalueEncryptionScheme
        )
Run Code Online (Sandbox Code Playgroud)