請注意,AccountManager
默認情況下不受任何加密方法的保護。那裏的密碼以純文本形式存儲。
一般來說,在Android設備本地存儲敏感數據始終存在受到威脅的風險。但是,有幾個選項可以通過使黑客更難以提取應用程序的敏感數據來降低風險。一旦你加密了你的數據,一個常見的問題就是你需要一種隱藏你的加密密鑰的方法。 Android的Keystore
系統可以提供幫助。
Android Keystore系統允許您將私鑰存儲在容器 中,以便從設備中提取更加困難。一旦密鑰在 密鑰庫中,它們可以用於加密操作,並且 私鑰資料保持不可導出。
我建議查看Ophio的Secure-Preferences庫。該庫在將數據存儲在SharedPreferences
和KeyStoreKeyGenerator
之前提供了一個抽象模糊處理,用於加密您的加密密鑰。保存用戶的密碼在本地可能是這個樣子:
private static void stashPassword(Application application, String password) {
String secretKey = null;
try {
secretKey = KeyStoreKeyGenerator.get(application, "KeyFilename")
.loadOrGenerateKeys();
} catch (Exception exception) {
// handle error
}
SharedPreferences preferences = new ObscuredPreferencesBuilder()
.setApplication(application)
.obfuscateValue(true)
.obfuscateKey(true)
.setSharePrefFileName(PREFERENCES_NAME)
.setSecret(secretKey)
.createSharedPrefs();
preferences.edit().putString(KEY_PASSWORD, password).apply();
}
看看this article的詳細信息,確保您在SharedPreferences
保存信息。
在本地數據庫中存儲用戶名和密碼的最佳方式,存儲密碼已加密。 –