我从哪里获得 128 个字符的十六进制编码加密密钥以使用 Realm Studio 打开加密的 Realm?

Where do I get the 128-character hex-encoded encryption key to open an encrypted Realm with Realm Studio?

我们的 Swift 应用程序使用 Realm (10.7.6) 并且已加密。我想在 Realm Studio (10.1.2) 中打开 .realm 文件,但它要求“128 个字符的十六进制编码加密密钥”。我不知道从哪里得到这个。

顺便说一句,在我的测试应用程序中,如果我不加密,我可以用 Realm Studio 打开那个 .realm 文件,所以 RealmSwift 和 Realm Studio 的版本是兼容的。

为了在应用程序中加密 Realm,我使用了来自 Realm 文档 heregetKey() 代码。该代码中生成的密钥只有 64 个字节,而不是 Realm Studio 要求的 128 个字节。如果我 print(key) 我在控制台中得到“64 字节”。如果我添加一个断点和 po key 也好不了多少:

▿ 64 bytes
  - count : 64
  ▿ pointer : 0x0000600003a14160
    - pointerValue : 105553177166176

我从哪里获得 Realm Studio 要求的“128 个字符的十六进制编码加密密钥”?


更新:正如下面 Jay 的回答中提到的,我使用了来自 here 的 Johannes Lund 的回答将 Data 对象转换为十六进制字符串。果然,我可以将该字符串粘贴到 Realm Studio window.

遗憾的是,如 Realm 站点上所述,您不能在多个进程中打开加密的 Realm。我一直在使用 Realm Studio 来帮助测试我们的集合观察器,但现在我们必须用另一种方式来做。

加密密钥是一个 NSData (Data) 对象。您可以将键的 NSString 对象表示为十六进制值的数据。然后您可以将该字符串与 Realm Studio

一起使用

我通常 post 基于代码的答案,但这里已经有很多关于将数据映射到十六进制字符串的示例。查看 Swift this question. There are a lot of other options for Swift 4 and above as well. And this one.

的 5 个答案