Sqlite шифрование для Android - PullRequest
1 голос
/ 12 ноября 2010

У меня есть приложение для Android, которое уже было разработано с использованием SQLite.БД довольно большая (более 100 мегабайт), поэтому ее можно развернуть только на SD-карте.Данные внутри БД являются конфиденциальными, поэтому по этой причине нам необходимо зашифровать БД.Бинарный SQLite по умолчанию на телефоне не позволяет шифровать или добавлять плагин (расширения).Мне удается скомпилировать SQLite, используя NDK с расширением шифрования (я называю это SQLiteS - из безопасного), но мне все еще нужно выяснить, как скопировать API Sqlite и связать его с новым двоичным файлом SQLiteS.Идея состоит в том, чтобы не изменять уже разработанный код, используя API-интерфейс SQLite по умолчанию, за исключением имени пакета.Любая идея о том, как я могу сделать это?

Ответы [ 3 ]

1 голос
/ 23 января 2011

Попробуйте установить собственный драйвер jdbcsqlite на Android. который делает вызовы sqlite3_ * (JNI).

Используйте инструмент aapt, чтобы связать библиотеку (sqliteS) с файлом .apk.

Кроме того, вы можете изменить имена sqlite3_ * (в созданном вами SQLiteS.so), чтобы он не ссылался на файл sqlite.so, предоставляемый android.

Дайте мне знать решение.

0 голосов
/ 13 мая 2014

Используйте sqlCipher. SQLCipher - это расширение с открытым исходным кодом для SQLite, которое обеспечивает прозрачное 256-битное шифрование AES файлов базы данных. Смотри http://sqlcipher.net/

0 голосов
/ 13 ноября 2010

Я знаю, что это не ответ на ваш вопрос, но вы можете попробовать (бесплатно, с открытым исходным кодом) H2 базу данных Он также поддерживает шифрование файлов данных. Однако есть некоторые недостатки, например, некоторые операции выполняются немного медленнее. Вам потребуется использовать JDBC API, потому что API базы данных SQLite / Android еще не поддерживается. Отказ от ответственности: я один из коммиттеров H2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...