在EncryptedSharedPreferences中,需要使用密钥别名来标识和访问加密密钥。密钥别名是一个字符串,用于唯一标识一个密钥。它可以是任何合法的字符串,但最好选择一个具有描述性的名称,以便于管理和识别。
使用密钥别名的好处是可以轻松地在应用程序中引用和使用加密密钥,而无需直接暴露密钥的具体值。这提高了应用程序的安全性,因为密钥的具体值不会在代码中明文显示。
在使用EncryptedSharedPreferences时,可以通过以下方式指定密钥别名:
MasterKeys.getOrCreate()
方法来生成一个主密钥,并将其作为参数传递给构造函数。例如:String masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);
SharedPreferences sharedPreferences = EncryptedSharedPreferences.create(
"my_encrypted_prefs_file",
masterKeyAlias,
context,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
);
在上述代码中,masterKeyAlias
就是密钥别名,它将用于访问和管理加密密钥。
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("my_key", "my_value");
editor.apply();
String value = sharedPreferences.getString("my_key", null);
在上述代码中,"my_key"就是使用的密钥别名,它将用于加密和解密存储的数据。
需要注意的是,密钥别名应该在应用程序中唯一,并且应该妥善保管,以防止未经授权的访问。
领取专属 10元无门槛券
手把手带您无忧上云