Шифрование базы данных Android

Android использует базу данных SQLite, чтобы хранить данные, я должен зашифровать базу данных SQLite, как это может быть сделано? Я понимаю, что данные приложения являются частными. Однако я должен к explictly зашифровать базу данных SQLite, которую использует мое приложение.

76
задан Plo_Koon 24 November 2013 в 21:42
поделиться

2 ответа

http://sqlite-crypt.com/ может помочь вам создать зашифрованную базу данных, хотя я никогда не использовал ее на android, похоже, это возможно с исходным кодом.

1
ответ дан 24 November 2019 в 11:21
поделиться

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

Немного лучшее решение для шифрования полей данных. Это создает проблему для пунктов WHERE и ORDER BY. Если зашифрованные поля нужно индексировать для поиска эквивалентности, то можно хранить криптографический хэш поля и искать по нему. Но это не поможет при поиске в диапазоне или упорядочивании.

Если вы хотите стать более причудливым, вы можете заглянуть в Android NDK и взломать криптографию в C-коде для SQLite.

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

13
ответ дан 24 November 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: