Realm 数据库解密失败

Aks4125

问题:当我尝试在Realm Browser(windows) 中打开加密的领域文件时,它给了我以下消息。

这要么不是 Realm 文件,要么是加密的。

输入:128 个字符的十六进制编码加密密钥

重要- 我在保存到磁盘之前关闭了我的领域。

代码

RealmConfiguration config = new RealmConfiguration.Builder()
            .name("w5uyqFyEDEK_OCWyl4123aa77")
            .schemaVersion(2)
            .encryptionKey(myClassObject.getRealmKey())
            .deleteRealmIfMigrationNeeded()
            .build();

方法

 public byte[] getRealmKey() {
    byte[] key;
    String savedKey = getStringFromPrefs(KEY);
    if (savedKey.isEmpty()) {
        key = generateKey();
        String keyString = encodeToString(key);
        saveStringToPrefs(keyString);
    } else {
        key = decodeFromString(savedKey);
    }
    return key;
}



 private void saveStringToPrefs(String aKeyString) {
    pref.edit().putString(KEY, aKeyString).apply();
}

private String encodeToString(byte[] aKey) {
    AppLogger.d("Encoding Key: %s", Arrays.toString(aKey));
    return Base64.encodeToString(aKey, Base64.DEFAULT);
}

private byte[] decodeFromString(String aSavedKey) {
    byte[] decoded = Base64.decode(aSavedKey, Base64.DEFAULT);
    AppLogger.d("Decoded Key: ", Arrays.toString(decoded));
    return decoded;
}

private byte[] generateKey() {
    byte[] key = new byte[64];
    new SecureRandom().nextBytes(key);
    return key;
}

我尝试使用key存储在打开加密的领域文件preferencebyte[] decodedKey但仍然无法打开领域文件。

我在这里错过了什么吗?

克里斯蒂安·梅尔基奥尔

您需要对加密密钥进行十六进制编码,而不是 Base64 编码。

你可以在这里看到如何做:https : //github.com/realm/realm-java/pull/5571

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Realm默认数据库清除

来自分类Dev

Realm.io压缩数据库

来自分类Dev

Realm 数据库是如何工作的?

来自分类Dev

关于 Realm 数据库中的事务

来自分类Dev

Realm 数据库链接对象

来自分类Dev

从Realm数据库检索单个对象的正确方法

来自分类Dev

如何从iOS完全删除Realm数据库?

来自分类Dev

无法在iOS的Realm数据库中存储Double值

来自分类Dev

在Realm中使用预填充的数据库

来自分类Dev

取消编辑查看Realm.io数据库

来自分类Dev

android realm:从备份文件还原领域数据库

来自分类Dev

备份和还原realm.io数据库

来自分类Dev

如何在Realm数据库的架构中添加字段?

来自分类Dev

将图像插入Android中的Realm数据库

来自分类Dev

如何在Android中清除Realm中的数据库

来自分类Dev

带Realm数据库的Linux应用程序

来自分类Dev

迁移期间Realm数据库插入行

来自分类Dev

无法从Realm数据库读取null的属性“ id”

来自分类Dev

从Realm数据库RLMResults访问单个属性-SWIFT

来自分类Dev

如何根据当前用户ID查询Realm数据库?

来自分类Dev

同步Realm Mobile数据库时显示加载

来自分类Dev

从 Realm 数据库 (Android) 中获取单列

来自分类Dev

从RecyclerView和Realm数据库中删除项目

来自分类Dev

在 Realm Object Server 上看不到数据库

来自分类Dev

Android Realm 数据库未更新记录

来自分类Dev

带有 Realm 的 Nosql 数据库结构

来自分类Dev

如何从不同的 ViewController 访问 Realm 数据库?

来自分类Dev

如何在 Realm 中拆分数据库模式?

来自分类Dev

在Swift中将JSON解析为Realm数据库时,如何防止Realm覆盖自身?