Каков наилучший подход к шифрованию файла базы данных SQLite в .Net / C #? Я использую sqlite-dotnet2 упаковщик.
Существуют такие инструменты, как Расширение шифрования SQLite и SQLite Crypt , но оба они бесплатны, пока мой проект находится под лицензией GPL.
Наивный подход, который я подумал использовать, состоял в том, чтобы позволить SQLite обрабатывать временный файл, затем шифровать его при выходе из программы и перезаписывать (обнулять) исходный. Очевидным недостатком является то, что в случае сбоя программы (и во время ее работы) доступна БД в виде простого текста.
Есть ли лучший способ приблизиться к этому? Могу ли я передать зашифрованный поток оболочке (вместо использования SQLiteConnection.CreateFile)?
[править] Может быть, я обдумываю это. Достаточно ли использовать опцию Пароль в строке подключения? Будет ли файл в этом случае должным образом зашифрован (или это слабая защита)?