什么是在.Net/C#中加密SQLite数据库文件的最佳方法?我正在使用sqlite-dotnet2包装器。
有一些工具,如SQLite Encryption Extension和SQLite Crypt,但两者都是非免费的,而我的项目受到GPL的保护。
我想到的天真的方法是让SQLite处理临时文件,然后在程序退出时将其加密,并覆盖(清零)原始文件。明显的缺点是,如果程序崩溃(并且在运行时),则可以访问纯文本DB。
有更好的方法来解决这个问题吗?我可以传递一个加密流给包装器(而不是使用SQLiteConnection.CreateFile)吗?
[编辑]也许我想太多了。在连接字符串中使用Password选项是否足够?在这种情况下,文件是否会被正确加密(还是某种较弱的保护)?
有一些工具,如SQLite Encryption Extension和SQLite Crypt,但两者都是非免费的,而我的项目受到GPL的保护。
我想到的天真的方法是让SQLite处理临时文件,然后在程序退出时将其加密,并覆盖(清零)原始文件。明显的缺点是,如果程序崩溃(并且在运行时),则可以访问纯文本DB。
有更好的方法来解决这个问题吗?我可以传递一个加密流给包装器(而不是使用SQLiteConnection.CreateFile)吗?
[编辑]也许我想太多了。在连接字符串中使用Password选项是否足够?在这种情况下,文件是否会被正确加密(还是某种较弱的保护)?