【问题标题】:Logout user on wrong encryption key in Realm在领域中使用错误的加密密钥注销用户
【发布时间】:2017-08-07 11:00:19
【问题描述】:

我在我的 Android 应用程序中使用 Realm database。数据需要加密,我正在使用Realm的加密。他们的密钥来自服务器,然后存储在设备上,但使用用户 PIN 加密。

如果 - 以任何方式 - 密钥被调整,我想注销用户。我正在使用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还没有被初始化,那么在realm没有被初始化的情况下怎么清除数据呢?

  • 当我测试它时,它不断启动LoginActivity 一次又一次,从未停止过。

我正在Application 类中初始化Realm

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 未正确解密时,如何以及在何处删除所有本地数据并注销用户?

【问题讨论】:

    标签: android encryption realm local-storage realm-migration


    【解决方案1】:

    如果您尝试使用错误的加密密钥打开 Realm 文件,Realm 将抛出 RealmFileException

    因此,您需要封装对Realm.getDefaultInstance() 的所有调用,捕获异常并在发生时将用户注销。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 2023-02-10
      • 2020-02-01
      相关资源
      最近更新 更多