수색…


소개

공유 기본 설정은 키 - 값 기반 XML 파일 입니다. /data/data/package_name/shared_prefs/<filename.xml> 있습니다.

따라서 루트 권한을 가진 사용자는이 위치로 이동할 수 있으며 값을 변경할 수 있습니다. 공유 환경 설정에서 값을 보호하려면 간단한 암호화 및 암호 해독 메커니즘을 작성하면됩니다.

공유 환경 설정은 결코 안전하도록 구축 된 것이 아니라 데이터를 유지하는 간단한 방법 일뿐입니다.

통사론

  1. public static String encrypt (문자열 입력);
  2. public static String decrypt (문자열 입력);

매개 변수

매개 변수 정의
입력 암호화 또는 해독 할 문자열 값입니다.

비고

공유 환경 설정은 결코 안전하도록 구축 된 것이 아니라 데이터를 유지하는 간단한 방법입니다.

공유 된 환경 설정을 사용하여 사용자 자격 증명과 같은 중요한 정보를 저장하는 것은 좋지 않습니다. 사용자 자격 증명 (예 : 암호)을 저장하려면 Android의 AccountManager 와 같은 다른 방법을 사용해야합니다.

공유 환경 설정 보안

단순한 코덱

다음은 작동 원리를 설명하기 위해 간단한 암호화 및 암호 해독을 사용할 수 있습니다.

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

구현 기법

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow