在.Net/C#中加密SQLite数据库文件的最佳方法是什么?我正在使用sqlite-dotnet2包装器.
有像SQLite加密扩展和SQLite Crypt这样的工具,但两者都是非自由的,而我的项目是在GPL下.
我想要使用的天真方法是让SQLite处理一个临时文件,然后在程序退出时对其进行加密,并覆盖(清零)原始文件.显而易见的缺点是,如果程序崩溃(并且在运行时),则可以访问纯文本DB.
有没有更好的方法来解决这个问题?我可以将加密流传递给包装器(而不是使用SQLiteConnection.CreateFile)吗?
[编辑]也许我在思考这个问题.是否足以在连接字符串中使用密码选项?在这种情况下文件是否会被正确加密(或者它是一些较弱的保护)?
我刚刚学习如何加密/解密 SQLite 数据库。
我找到了一种加密方法,如这篇文章《具有加密/密码保护的 SQLite》
本页的最佳答案说我们可以使用SEE、wxSQLite、SQLCipher、SQLiteCrypt等...来加密。
我能够了解。
而且,另一个答案说我们可以使用:
SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
conn.SetPassword("password");
conn.open();
Run Code Online (Sandbox Code Playgroud)
此页面也说了同样的话: 密码保护 SQLite DB。是否可以?
然而,SQLiteConnection没有SetPassword也没有ChangePassword方法。我很困惑。
SetPasword或在哪里ChangePassword?这些
是在SEE、、、wxSQLite吗SQLCipher?SQLiteCrypt
[开发环境]
VisualStudio2010 .NET Framework 4 Client Profile System.Data.SQLite.dll ( https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki )
我从那里下载了 zip,然后选择了“System.Data.SQLite.dll”