Архиватор, защищающий данные SQLite без использования шифрования на iPhone
-
19-09-2019 - |
Вопрос
Я разрабатываю приложение для iPhone, которое использует Core Data с хранилищем данных SQLite и множеством изображений в пакете ресурсов.Мне нужен «простой» способ запутать файловую структуру базы данных SQLite и файлы изображений, чтобы предотвратить доступ к ним случайного хакера/недобросовестного разработчика.При развертывании приложения файл базы данных и файлы изображений будут запутаны.После запуска приложения оно считывает и дезапутывает файл базы данных, записывает незашифрованную версию в каталог пользователя «tmp» для использования основными данными, а также читает/распутывает файлы изображений по мере необходимости.
Я хотел бы применить к файлам простой алгоритм, который каким-то образом шифровал бы/манипулировал данными файла, чтобы данные базы данных sqlite не были различимы, когда база данных открывается в текстовом редакторе, и чтобы ни один из них не распознавался другими приложениями ( SQLite Manager, Photoshop и т. д.)
Судя по прочитанной информации, я мог бы использовать NSFileManager, NSKeyedArchiver и NSData для достижения этой цели, но я не знаю, как действовать.Я занимаюсь разработкой программного обеспечения уже много лет, но я новичок во всем, что касается CocoaTouch, Mac и iPhone.Также мне никогда не приходилось защищать/шифровать мои данные, так что это новинка.
Любые мысли, предложения или ссылки на решения приветствуются.
Решение
Вы можете использовать gzip для архивирования файла.Удалите расширение и заголовок файла, тогда будет довольно сложно догадаться, как его расшифровать, если кто-нибудь получит доступ к сжатой базе данных.
Если вы захотите прочитать еще раз, предварительно добавьте заголовок gzip и распакуйте его.gzip доступен на iPhone