0
我在我的Android應用中使用了Realm database。數據需要加密,我正在使用Realm
的加密。他們的密鑰來自服務器,然後存儲在設備上,但使用用戶PIN加密。在Realm中註銷錯誤加密密鑰的用戶
我想退出用戶,如果 - 無論如何 - 鑰匙被鍛鍊。我使用ParentActivity
類一些通用的初始化和試圖做這裏面onCreate
像下面,
private void initRealm() {
try {
if(MyApplication.getInstance().isRelamInitialized)
realm = Realm.getDefaultInstance();
} catch (IllegalStateException e) {
e.printStackTrace();
deleteAllAndLogout();
}
}
而且deleteAllAndLogout
類似於下,
public void deleteAllAndLogout() {
session.logoutUser();
session.removeFbData();
RealmManager.deleteAll(realm);
LoginManager.getInstance().logOut();
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
}
問題
Realm
尚未初始化,那麼它應該如何清除數據wi大約realm
正在初始化?當我測試它時,它一次又一次地開始
LoginActivity
並從未停止過。
我正在初始化Realm
在Application
類。
public void initRealm() {
String encryptedKey = new Session(getApplicationContext()).getStringForKey(Session.mainEncryptedKeyForEncryption);
String key = new Cipher(getApplicationContext()).decrypt(encryptedKey);
Realm.init(getApplicationContext());
config = new RealmConfiguration
.Builder()
.encryptionKey(key.getBytes())
.deleteRealmIfMigrationNeeded()
.name(DB_NAME)
.schemaVersion(DB_VERSION)
.build();
Realm.setDefaultConfiguration(config);
isRelamInitialized = true;
}
問題
如何以及在哪裏可以刪除所有本地數據和註銷用戶時Realm
沒有正確解密?