Я искал эту тему, чтобы найти лучший способ скрыть структуру данных для файла Sqlite, используемого Core Data в приложении для iOS. Я нашел много вопросов, касающихся желания сохранить данные от конечного пользователя, но я в первую очередь заинтересован в защите своей структуры данных (и, во-вторых, чтобы пользователь не связывался с его данными). В настоящее время я использую Dropbox для резервного копирования файла Sqlite моего приложения, и в его нынешнем виде любой может открыть этот файл и просмотреть структуру данных. В моем новом приложении я все еще хотел бы использовать Dropbox, поскольку до сих пор он работал хорошо; но я не хочу, чтобы конечный пользователь мог открыть файл базы данных. Я просто хочу, чтобы приложение могло загружать или скачивать файл.
Кажется, что шифрование всего файла может быть излишним, и я не хочу шифровать отдельные поля, потому что меня больше интересует структура. Я видел пару постов, в которых спрашивалось о защите паролем / шифровании, но обычно ответы касаются шифрования ответов, и я не смог найти много о защите паролем.
Из того, что я узнал (и, пожалуйста, поправьте меня, если я ошибаюсь):
1) CommonCrypto лучше всего подходит для шифрования на уровне поля и, вероятно, не то, что я ищу.
2) OpenSSL и SQLCipher зашифруют базу данных, но могут снизить производительность (и могут оказаться для меня излишними)
Существует ли простой способ обеспечить защиту паролем для файла SQLite и при этом иметь возможность чтения / записи с помощью Core Data? Я понимаю, что мне придется хранить пароль в приложении, что сделает его довольно простым для хакера, но я в порядке с этим. Я просто хочу обеспечить один дополнительный уровень защиты для себя (в части структуры данных) и для конечного пользователя (чтобы они не могли испортить / испортить свои данные).