Archiver Защита данных SQLite без использования шифрования на iPhone - PullRequest
2 голосов
/ 02 октября 2009

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

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

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

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

1 Ответ

4 голосов
/ 02 октября 2009

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

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

...