Где получить ключ шифрования для приложения Realm в Swift

У меня есть приложение Swift, которое использует сервер объектов Realm, работающий удаленно на сервере Linux. Все работает, включая синхронизацию в реальном времени.

Иногда я хочу проверить содержимое локального файла Realm, используемого симулятором iOS, чтобы выполнить некоторую отладку. Когда я просматриваю здесь:

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

... и я пытаюсь открыть этот файл: realm%3A%2F%2F104%2E236%2E129%2E235%3A9080%2F%7E%2Fmyapp.realm

Я получаю запрос: Пожалуйста, введите действительный ключ шифрования для этого файла Realm. введите здесь описание изображения Где взять этот ключ шифрования? Я попытался использовать токен администратора с сервера, но, похоже, это не работает.

Кроме того, могу ли я везде отключить шифрование? Или это обязательно для любого приложения, использующего сервер объектов Realm?


person Clifton Labrum    schedule 26.10.2016    source источник


Ответы (4)


Невозможно открыть локальную версию синхронизированного файла Realm с помощью браузера (или чего-либо еще, если на то пошло). Это связано с различными типами истории внутри (но я не буду сейчас вдаваться в подробности). Чтобы проверить содержимое файла Realm, вы должны открыть его, используя ранее определенный файл syncURL. Затем браузер загрузит файл и покажет вам его содержимое.

Несколько ссылок по этой теме:

person teotwaki    schedule 26.10.2016

Вы можете использовать старую версию Realm Browser, обновите ее и снова проверьте результат.

person Soheil Novinfard    schedule 23.04.2017

Вместо этого используйте Realm Studio, который сработал для меня.

Здесь можно скачать файл

person 刘俊利    schedule 03.07.2020

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() вы можете увидеть: Как преобразовать массив байтов в шестнадцатеричную строку в Java?

person yanghong shen    schedule 16.03.2017
comment
Привет, не могли бы вы немного расширить это? У вас есть источник, например? - person Fabio says Reinstate Monica; 16.03.2017
comment
байт [] ключ = новый байт [64]; новый SecureRandom(). nextBytes (ключ); Строковый ключ шифрования = byteArrayToHexString (ключ); Log.d(test,encryptionKey:+encryptionKey);//encryptionKey - это то, что вам нужно byteArrayToHexString см. stackoverflow.com/questions/9655181/ - person yanghong shen; 30.03.2017
comment
Хорошо, пожалуйста, отредактируйте свой ответ и добавьте его туда. Комментарии — не лучшее место для добавления кода, так как они не поддерживают форматирование и по правилам сайта могут быть удалены в любой момент. Благодарю вас! - person Fabio says Reinstate Monica; 30.03.2017