使用Realm浏览器在Mac上查看域文件的加密密钥

时间:2016-10-09 10:29:12

标签: java android realm

我正在使用Realm作为我的Android应用程序,我想使用Realm浏览器查看我的mac上的default.realm文件,但它要求加密密钥。 enter image description here 我没有通过提供“.encryptionKey(key)”明确地在Realm Configuration中进行加密。那么我必须提供什么加密密钥?默认情况下是否有加密?我在Android Studio上使用Realm插件2.0.2,我的Realm Browser在Mac上使用2.0.1。 我还尝试在我的代码中提供这样的encryptionKey(key):

byte[] key = new byte[64];
new SecureRandom().nextBytes(key);
RealmConfiguration config = new RealmConfiguration.Builder()
.encryptionKey(key)
.build();

并尝试向浏览器提供相同的哈希值(128长度)以打开文件,但没有运气。我在SO中找到了与如何使用adb pull检索文件相关的答案,但我对这个加密部分一无所知。在这方面的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:5)

问题是该文件已损坏。来自Realm浏览器的错误消息相当误导,要求加密密钥。

由于我的手机没有root,我无法使用adb pull直接检索文件。

adb pull /data/data/<packagename>/files/ .

我通过将内容复制到系统上的文件来使用另一个命令,这会导致损坏。

这是最终为我工作的命令。

./adb exec-out run-as <packagename> cat /data/data/<packagename>/files/default.realm > ~/Documents/foo/foo.realm

之前我没有把exec-out放在命令中,这就是腐败的原因。