2015-08-03 3 views
0

Я хочу написать приложение для Android, которое использует готовую информацию. Я использую расширение Sqlite manager из Firefox и помещаю его в папку с ресурсами, но если кто-то просто изменит расширение и сделает apk-файл zip-файлом, он может легко есть ли моя база данных, что является лучшим решением в этом случае?скрывать собственную базу данных Sqlite от декомпиляции

+2

Лучшее решение - не помещать базу данных в apk. но в любом случае вам нужно учитывать, что все, что происходит на телефоне пользователя, может быть скомпрометировано. – njzk2

+0

Вы можете сделать это сложнее. Например, зашифруйте базу данных с помощью AES. Или переместите свой db в Интернет и загрузите его, если необходимо, или обратитесь к нему в инет. –

+0

В любом случае ваша БД будет доступна; вы можете просто зашифровать конфиденциальные данные –

ответ

2

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

Вы можете сделать это сложнее, зашифровав базу данных и сокрыв ключ где-нибудь в коде. Это сделает так, что злоумышленнику понадобится декомпилировать код, чтобы найти ключ, чтобы они могли дешифровать БД.

Еще лучше, вы могли бы поместить ключ на сетевой сервер где-нибудь. Если вы это сделаете, ваш пользователь должен быть в режиме онлайн, чтобы использовать приложение ... и злоумышленник должен подделать ваше приложение и запросить ключ для дешифрования базы данных. ... но они все еще могут это сделать.

Это проблема с DRM. Практически невозможно предоставить злоумышленникам зашифрованный контент и ключи и по-прежнему защищать контент.

+0

Технически им не нужно декомпилировать приложение, чтобы получить ключ, они могут просто очистить его от памяти запущенного приложения. – Antimony