Securing a Shared Preference
suggest changeSimple Codec
Here to illustrate the working principle we can use simple encryption and decryption as follows.
public static String encrypt(String input) { // Simple encryption, not very strong! return Base64.encodeToString(input.getBytes(), Base64.DEFAULT); } public static String decrypt(String input) { return new String(Base64.decode(input, Base64.DEFAULT)); }
Implementation Technique
public static String pref_name = "My_Shared_Pref"; // To Write SharedPreferences preferences = getSharedPreferences(pref_name, MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString(encrypt("password"), encrypt("my_dummy_pass")); editor.apply(); // Or commit if targeting old devices // To Read SharedPreferences preferences = getSharedPreferences(pref_name, MODE_PRIVATE); String passEncrypted = preferences.getString(encrypt("password"), encrypt("default_value")); String password = decrypt(passEncrypted);
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents