У меня есть приложение ( Amnesia ), которое позволяет создавать записки / наклейки / сигналы тревоги / телефонную книгу и использует db4o (встроенный) для хранения объектов в файле .db.
Я собираюсь добавить шифрование / дешифрование для защиты данных.Позвольте мне описать вам процесс (из того, что я хочу сделать):
Когда приложение установлено и запущено в первый раз, оно запросит пароль.Затем он будет использовать эту фразу-пароль для шифрования / дешифрования демонстрационных данных, созданных при первой инициализации базы данных, а также для любой записи, которая будет сделана позднее (да, при первом запуске нет базы данных. Она создаетсяи заполнен демо-данными).
Каждый раз, когда пользователь открывает приложение, оно запрашивает у него пароль.Пользователь вводит парольную фразу, и приложение будет пытаться прочитать из БД и расшифровать данные.Если расшифровка не удалась, это означает, что пользователь ввел «неправильный» (отличный от первого использованного) пароль, и приложение закроется.
Я хотел бы спросить, возможно ли это или нет?Из моего поиска в Google я обнаружил только шифрование / дешифрование таких объектов, как строки, а для других объектов единственными учебными пособиями были примеры сериализации.Я не хочу экспортировать / импортировать данные из файла (как и все примеры сериализации) каждый раз, когда выполняется сохранение или чтение в базу данных (из-за того, что обращения к базе данных выполняются очень часто, и это не-продуктивно для этого).
Мне нужно простое шифрование каждый раз, когда объект записывается (сохраняется), и дешифрование каждый раз, когда объект / класс запрашивается / извлекается из файла .db (внедренный db4o).).
Можно ли это сделать?
(моя другая альтернатива - использовать внешний файл, например .ini, для хранения зашифрованного пароля пользователя, а затем просто проверять этот пароль при вводе пользователем каждый раз при запуске приложения, но это гораздо менее безопасно.)