Я хочу написать приложение для Android, которое использует готовую информацию. Я использую расширение Sqlite manager из Firefox и помещаю его в папку с ресурсами, но если кто-то просто изменит расширение и сделает apk-файл zip-файлом, он может легко есть ли моя база данных, что является лучшим решением в этом случае?скрывать собственную базу данных Sqlite от декомпиляции
ответ
Замечания, которые вы получаете, полностью верны. Невозможно гарантировать, что никто не сможет получить содержимое этой базы данных.
Вы можете сделать это сложнее, зашифровав базу данных и сокрыв ключ где-нибудь в коде. Это сделает так, что злоумышленнику понадобится декомпилировать код, чтобы найти ключ, чтобы они могли дешифровать БД.
Еще лучше, вы могли бы поместить ключ на сетевой сервер где-нибудь. Если вы это сделаете, ваш пользователь должен быть в режиме онлайн, чтобы использовать приложение ... и злоумышленник должен подделать ваше приложение и запросить ключ для дешифрования базы данных. ... но они все еще могут это сделать.
Это проблема с DRM. Практически невозможно предоставить злоумышленникам зашифрованный контент и ключи и по-прежнему защищать контент.
Технически им не нужно декомпилировать приложение, чтобы получить ключ, они могут просто очистить его от памяти запущенного приложения. – Antimony
Лучшее решение - не помещать базу данных в apk. но в любом случае вам нужно учитывать, что все, что происходит на телефоне пользователя, может быть скомпрометировано. – njzk2
Вы можете сделать это сложнее. Например, зашифруйте базу данных с помощью AES. Или переместите свой db в Интернет и загрузите его, если необходимо, или обратитесь к нему в инет. –
В любом случае ваша БД будет доступна; вы можете просто зашифровать конфиденциальные данные –