Взгляните на http://sqlcipher.net/, который использует AES (прозрачно) для хранения данных в SQLite - он должен быть достаточно сильным для вашего варианта использования.
Остальное зависит от вашей ситуации:
1) система отключена?Вы не сможете сделать безопасный постоянный вход в систему - пользователям придется входить в систему каждый раз, когда приложение выходит на передний план, чтобы получить доступ к данным.
2) Ваша система подключена к сети?Постоянный вход в систему может быть возможен, поскольку компонент аутентификации на стороне сервера может быть деактивирован для пользователя / устройства, когда устройство потеряно.Просто запросите у сервера токен разблокировки после того, как пользователь введет пароль, и используйте этот токен для разблокировки базы данных (конкретная реализация зависит от вас, я бы пошел с явным соединением устройство-сервер с открытым / закрытым ключами) ...
Следует помнить одну особую ситуацию - смена пароля.Это можно сделать с помощью повторного импорта данных в новую зашифрованную базу данных.Суть:
Вам нужно попросить пользователя ввести старый пароль, чтобы разблокировать текущую базу данных для чтения, затем новый пароль, чтобы создать новую и затем импортировать старые данные в новую базу данных.И когда процесс завершится, просто удалите старую базу данных ...
Надеюсь, это поможет ...