【问题标题】:Where to Get Encryption Key for Realm App in Swift在哪里获取 Swift 中 Realm 应用程序的加密密钥
【发布时间】:2016-10-26 04:53:13
【问题描述】:

我有一个 Swift 应用程序,它使用在 Linux 服务器上远程运行的 Realm 对象服务器。一切正常,包括实时同步。

有时我想检查 iOS 模拟器使用的本地 Realm 文件的内容,以便进行一些调试。当我在这里浏览时:

~/.../CoreSimulator/.../Documents/realm-object-server/<unique id>/

...我尝试打开这个文件:realm%3A%2F%2F104%2E236%2E129%2E235%3A9080%2F%7E%2Fmyapp.realm

我收到提示:请为此领域文件输入有效的加密密钥。 我在哪里可以得到这个加密密钥?我尝试使用来自服务器的管理员令牌,但这似乎不起作用。

另外,我可以在所有地方关闭加密吗?还是任何使用 Realm Object Server 的应用都必须这样做?

【问题讨论】:

    标签: realm realm-mobile-platform realm-browser


    【解决方案1】:

    无法使用浏览器(或其他任何方式)打开已同步 Realm 文件的本地版本。这是由于内部历史类型不同(但我现在不会深入讨论)。为了检查 Realm 文件的内容,您必须使用之前定义的 syncURL 打开它。然后浏览器将下载文件并显示内容。

    关于这个主题的几个链接:

    【讨论】:

      【解决方案2】:

      您可以使用旧版本的Realm Browser,请更新并再次检查结果。

      【讨论】:

        【解决方案3】:

        改用Realm Studio,这对我有用。

        Here can download the file

        【讨论】:

          【解决方案4】:
          byte[] key = new byte[64]; 
          new SecureRandom().nextBytes(key); 
          String encryptionKey = byteArrayToHexString(key); 
          //encryptionKey is what you want byteArrayToHexString see
          Log.d("test", "encryptionKey:"+encryptionKey);
          

          byteArrayToHexString()方法可以看:How to convert a byte array to a hex string in Java?

          【讨论】:

          • 您好,您能详细说明一下吗?例如,您有来源吗?
          • byte[] key = new byte[64];新的 SecureRandom().nextBytes(key);字符串加密密钥 = byteArrayToHexString(key); Log.d("test","encryptionKey:"+encryptionKey);//encryptionKey就是你想要的 byteArrayToHexString 见stackoverflow.com/questions/9655181/…
          • 好的,请edit你的答案并添加到那里。评论不是添加代码的好地方,因为它们不支持格式化,并且根据网站规则,它们可以随时删除。谢谢!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多