Предоставленные вами ссылки говорят о шифровании хранилища на всем устройстве;Однако, если цель состоит в том, чтобы пользователь не смог открыть файл базы данных напрямую, это вам не поможет, поскольку единственное, что защищает от вас, - это доступ к вашим данным в случае кражи устройства.Это также зависит от пользователя, чтобы установить его, приложение не может требовать, чтобы хранилище устройства было зашифровано.
В основном, что является причиной, почему стоит зашифровать хранилище?*
Основываясь на цепочке ответов, я думаю, что использование зашифрованного варианта SQLLite по адресу:
http://sqlcipher.net/
является хорошим решением.Это шифрует содержимое базы данных до того, как оно попадает в хранилище, и это здорово.Злоумышленник все еще может найти ключ, используемый в вашем коде для расшифровки базы данных, но любой уровень защиты, который вы можете добавить, поможет.Я не думаю, что вы могли бы использовать это с CoreData (так как он построен поверх встроенных библиотек sqllite), но вы, вероятно, могли бы использовать его с оболочкой, такой как FMDB:
https://github.com/ccgus/fmdb