Zoeken…


Invoering

Gedeelde voorkeuren zijn op sleutelwaarde gebaseerde XML-bestanden . Het bevindt zich onder / data / data / package_name / shared_prefs / <bestandsnaam.xml>.

Dus een gebruiker met rootrechten kan naar deze locatie navigeren en de waarden ervan wijzigen. Als u waarden in uw gedeelde voorkeuren wilt beschermen, kunt u een eenvoudig coderings- en decoderingsmechanisme schrijven.

Je moet weten dat gedeelde voorkeuren nooit zijn gebouwd om veilig te zijn, het is gewoon een eenvoudige manier om gegevens te bewaren.

Syntaxis

  1. public static String encrypt (String-invoer);
  2. public static String-decodering (string-invoer);

parameters

Parameter Definitie
invoer Tekenreekswaarde om te coderen of te decoderen.

Opmerkingen

Gedeelde voorkeuren zijn nooit gebouwd om veilig te zijn, het is gewoon een eenvoudige manier om gegevens te bewaren.

Het is geen goed idee om gedeelde voorkeuren te gebruiken voor het opslaan van kritieke informatie zoals gebruikersreferenties. Om gebruikersreferenties (zoals wachtwoorden) op te slaan, moet u andere methoden gebruiken, zoals AccountManager Android.

Een gedeelde voorkeur beveiligen

Eenvoudige codec

Om het werkingsprincipe te illustreren, kunnen we eenvoudige codering en decodering als volgt gebruiken.

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

Implementatietechniek

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow