Архиватор, защищающий данные SQLite без использования шифрования на iPhone

StackOverflow https://stackoverflow.com/questions/1507096

Вопрос

Я разрабатываю приложение для iPhone, которое использует Core Data с хранилищем данных SQLite и множеством изображений в пакете ресурсов.Мне нужен «простой» способ запутать файловую структуру базы данных SQLite и файлы изображений, чтобы предотвратить доступ к ним случайного хакера/недобросовестного разработчика.При развертывании приложения файл базы данных и файлы изображений будут запутаны.После запуска приложения оно считывает и дезапутывает файл базы данных, записывает незашифрованную версию в каталог пользователя «tmp» для использования основными данными, а также читает/распутывает файлы изображений по мере необходимости.

Я хотел бы применить к файлам простой алгоритм, который каким-то образом шифровал бы/манипулировал данными файла, чтобы данные базы данных sqlite не были различимы, когда база данных открывается в текстовом редакторе, и чтобы ни один из них не распознавался другими приложениями ( SQLite Manager, Photoshop и т. д.)

Судя по прочитанной информации, я мог бы использовать NSFileManager, NSKeyedArchiver и NSData для достижения этой цели, но я не знаю, как действовать.Я занимаюсь разработкой программного обеспечения уже много лет, но я новичок во всем, что касается CocoaTouch, Mac и iPhone.Также мне никогда не приходилось защищать/шифровать мои данные, так что это новинка.

Любые мысли, предложения или ссылки на решения приветствуются.

Это было полезно?

Решение

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

Если вы захотите прочитать еще раз, предварительно добавьте заголовок gzip и распакуйте его.gzip доступен на iPhone

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top