Как я могу зашифровать содержание CoreData на iPhone

Механизм Зенда использует копию на записи, и когда Вы используете ссылку сами, это подвергается небольшим дополнительным издержкам. Может только найти это упоминание во время записи, хотя, и комментарии в руководство содержит другие ссылки.

(РЕДАКТИРОВАНИЕ) страница руководства на Объекты и ссылки содержат немного больше информации о том, как переменные объекта отличаются от ссылок.

46
задан Community 23 May 2017 в 12:10
поделиться

4 ответа

Вы можете зашифровать отдельные свойства в объектах модели Core Data, сделав их трансформируемыми свойствами , а затем создав подкласс NSValueTransformer, который будет шифровать и дешифровать данные для этого свойства. Хотя это не та расшифровка всей базы данных, которую вы ищете, она потребует гораздо меньшего объема памяти, чем расшифровка всей базы данных в память. Кроме того, это позволит выполнять дешифрование лениво, а не сразу, поэтому ваше приложение будет загружаться намного быстрее. В зависимости от используемого шифрования я бы даже ожидал, что доступ к данным на диске для загрузки каждого объекта будет медленнее, чем процесс дешифрования свойств, поэтому вы не увидите такого большого снижения производительности при доступе к свойствам.

73
ответ дан 26 November 2019 в 20:22
поделиться

Мне удалось адаптировать пример кода Apple CustomAtomicStoreSubclass для использования в настольном приложении Mac, в результате зашифрованное постоянное хранилище в стиле NSBinaryStore, записанное как один файл в файловой системе. Мой подход:

  • Скопируйте исходный код класса CustomAtomicStoreSubclass и CustomAtomicStoreSubclassCacheNode в мой проект и переименуйте их
  • Сохраните ключ и начальный вектор в связке ключей
  • Используйте OpenSSL библиотека в комплекте с Mac OS X
  • Зашифруйте вывод NSKeyedArchiver и запишите зашифрованный текст на диск (расшифровка обратная)

Я перехватил чтение и запись резервного хранилища в readFile , metadataForPersistentStoreWithURL: error : , setMetadata: forPersistentStoreWithURL: error: и save: методы в CustomAtomicStoreSubclass .

Заметки о подклассах для справочника классов NSAtomicStore для iPhone выглядят аналогично Mac OS X. Возможно, этот подход также подойдет для iPhone.

4
ответ дан 26 November 2019 в 20:22
поделиться

Шифрование - это шифрование, независимо от того, в каком формате находятся ваши данные, и вам, конечно, не нужно беспокоиться о том, как что-то «интегрируется с представлениями». Все, что вам нужно сделать, это расшифровать его, прежде чем пытаться прочитать что-нибудь значимое.

-3
ответ дан 26 November 2019 в 20:22
поделиться

Как зашифровать или расшифровать данные?

"API служб сертификатов, ключей и доверия предоставляет функции для создания симметричных и асимметричных ключей шифрования, создания и проверки цифровых подписей и ключей шифрования. и одноразовые номера. Библиотека CommonCrypto используется для симметричного шифрования, хеширования и операций HMAC. См. Справочник по службам сертификатов, ключей и доверия и CC_crypto (3cc) справочные страницы для дополнительная информация »

0
ответ дан 26 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: