Sök…


Introduktion

Delade inställningar är nyckelvärdebaserade XML-filer . Det finns under /data/data/package_name/shared_prefs/<filename.xml> .

Så en användare med root-privilegier kan navigera till den här platsen och kan ändra dess värden. Om du vill skydda värden i dina delade preferenser kan du skriva en enkel krypterings- och dekrypteringsmekanism.

Du borde veta tufft att delade inställningar aldrig byggdes för att vara säkra, det är bara ett enkelt sätt att fortsätta data.

Syntax

  1. public static String encrypt (String input);
  2. public static String decrypt (String input);

parametrar

Parameter Definition
inmatning Strängvärde för att kryptera eller dekryptera.

Anmärkningar

Delade inställningar byggdes aldrig för att vara säkra, det är bara ett enkelt sätt att fortsätta data.

Det är inte bra att använda delade inställningar för att lagra kritisk information som användaruppgifter. För att spara användaruppgifter (till exempel lösenord) måste du använda andra metoder som Android's AccountManager .

Säkra en delad preferens

Enkel kodek

Här för att illustrera arbetsprincipen kan vi använda enkel kryptering och dekryptering enligt följande.

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));
}

Implementeringsteknik

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);


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow