물론 로그인, 비밀번호 또는 이메일과 같은 사용자 설정을 암호화해야합니다. 나는 저장을 위해 SharedPreferences
을 선호하고, 그렇습니다. 보안면에서 충분합니다.
I에 유래에서이 두 가지 방법을 발견했습니다, 그것은 공정한 충분 :
protected String encrypt(String value) {
try {
final byte[] bytes = value!=null ? value.getBytes(UTF8) : new byte[0];
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = keyFactory.generateSecret(new PBEKeySpec(SEKRIT));
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.ENCRYPT_MODE, key, new PBEParameterSpec(Settings.Secure.getString(context.getContentResolver(),Settings.System.ANDROID_ID).getBytes(UTF8), 20));
return new String(Base64.encode(pbeCipher.doFinal(bytes), Base64.NO_WRAP),UTF8);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
protected String decrypt(String value){
try {
final byte[] bytes = value!=null ? Base64.decode(value,Base64.DEFAULT) : new byte[0];
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = keyFactory.generateSecret(new PBEKeySpec(SEKRIT));
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.DECRYPT_MODE, key, new PBEParameterSpec(Settings.Secure.getString(context.getContentResolver(),Settings.System.ANDROID_ID).getBytes(UTF8), 20));
return new String(pbeCipher.doFinal(bytes),UTF8);
} catch(Exception e) {
throw new RuntimeException(e);
}
}
내가 발견하면, 나는 내 대답을 편집 할 수 있습니다, 링크를 찾을 수 없습니다.
편집 : 소스를 찾았 으면 here에 대한 모든 토론을 볼 수 있습니다.
물론 키를 앱에 저장하고 DES로 암호화하면 캐주얼 스누핑이 중지됩니다. 공유 된 환경 설정은 어떤 방식 으로든 앱에 개인적으로 적용되므로 실제로 저장 장치에서는별로 달성하지 못합니다. –
나는 이것이 내가 무엇을 요구하고 있는지 생각한다. 잘 작동 해, 고마워. –