Android
안전한 SharedPreferences
수색…
소개
공유 기본 설정은 키 - 값 기반 XML 파일 입니다. / data / data / package_name / shared_prefs / <filename.xml> 아래에 있습니다.
따라서 루트 권한을 가진 사용자는이 위치로 이동할 수 있으며 값을 변경할 수 있습니다. 공유 환경 설정에서 값을 보호하려면 간단한 암호화 및 암호 해독 메커니즘을 작성하면됩니다.
공유 환경 설정은 결코 안전하도록 구축 된 것이 아니라 데이터를 유지하는 간단한 방법 일뿐입니다.
통사론
- public static String encrypt (문자열 입력);
- 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