Как защитить БД sqlite от копирования поставляемую вместе с приложением?

БД идет в месте с приложением и со временем обновляется.

Самый простой способ утащить БД это разархивировать ipa.

Первое что приходит в голову для защиты это архивирование БД с паролем.

Но это не спасает от другого способа утащить БД на разлоченном устройстве, после первого запуска приложения, когда архив будет распакован.

Какие способы защиты применяются в таких случаях?
  • Вопрос задан
  • 5735 просмотров
Решения вопроса 1
IbrahimKZ
@IbrahimKZ
Думаю, самый простой способ – это шифровать отдельные поля, которые хотите защитить. При извлечении расшифровываете по какому-либо алгоритму-ключу, например, в зависимости от id строки. Мне кажется, сильно не должно тормозить. Ну и при сохранении-изменении аналогично.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@dezinger Автор вопроса
hell0w0rd
@hell0w0rd
Просто разработчик
Я далек от IOS-разработки, а шифровать базу нельзя? То есть утащили — ну и ладно, сидите расшифровывайте?
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Если настолько важная база — сделайте свой формат базы.
Например, куб-контейнер: таблица, колонка, данные. (если база небольшая)
или листы-контейнеры: колонка, данные и файл индексов базы (если база большая)

Затем зашифруйте контейнер (или все файл бд) и грузите его(их) из файла при открытии приложения (по мере необходимости).
Считайте весь контейнер в память и дешифруйте в массив значений.
Если были изменения базы — зашифруйте контейнер в памяти, перезапишите файл на носителе.

Написать один раз подобный класс — не сложно.
За потраченное время — Вы дольше сохраните недоступность базы для распространения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы