实体框架支持的开源SQLite数据库加密?
我正在开发一个将SQLite用于数据库的应用程序。我正在使用SQLite的Devart dotconnect()和.NET4.5中的实体框架与数据库进行接口。我对使用加密保护数据库很感兴趣。我也看过这篇文章。乍一看,Devart和entity framework支持的唯一加密是SEE,一个许可证要花2000美元。您是否知道任何与此设置兼容的开源解决方案?我对entity framework有点陌生,所以我甚至不确定entity framework解密数据库时幕后会发生什么。。。也许有一个我没有考虑过的替代方案?好了,已经5天了,没有人回答,所以我将公布我的发现。实体框架支持的开源SQLite数据库加密?,sqlite,entity-framework-5,Sqlite,Entity Framework 5,我正在开发一个将SQLite用于数据库的应用程序。我正在使用SQLite的Devart dotconnect()和.NET4.5中的实体框架与数据库进行接口。我对使用加密保护数据库很感兴趣。我也看过这篇文章。乍一看,Devart和entity framework支持的唯一加密是SEE,一个许可证要花2000美元。您是否知道任何与此设置兼容的开源解决方案?我对entity framework有点陌生,所以我甚至不确定entity framework解密数据库时幕后会发生什么。。。也许有一个我没有考
我没有找到dotConnect SQLite特别支持的任何其他加密方法,除了SEE、CEROD和。SQLiteCrypt似乎是最便宜的,但也具有最少的功能。我假设dotConnect SQLite支持它,因为它有一个选项(请参阅)。根据我的研究,如果你的预算很紧,想要保护你的数据库,你就必须使用SQLiteCrypt,或者通过尽可能地隐藏数据库来保护数据库(这可能只会让普通用户不会弄乱数据)。请记住,我的需求是使用dotConnect SQLite和实体框架。如果没有这些限制,还有更多的选项可用。我在两个小项目中使用了开源
System.Data.SQLite
提供程序,这两个项目都需要以某种方式保护数据库。您可以阅读有关以下内容的详细信息:
加密数据库支持。加密数据库是完全加密的
并支持二进制和明文密码类型
在项目部 对于使用
System.Data.SQLite的默认加密,请使用:
创建空数据库并运行下面的程序,然后在应用程序的连接字符串中使用password属性
void Main()
{
// Connection strings:
string sqliteDBFile = @"C:\temp\test.db";
string connStr = @"data source=" + sqliteDBFile;
string password = "password";
// Query create all the tables in the database:
string sql = @"CREATE TABLE...";
// Connection code:
SQLiteConnection cnn = null;
try {
cnn = new SQLiteConnection (connStr);
cnn.Open ();
cnn.ChangePassword (password);
SQLiteCommand myCommand = new SQLiteCommand (sql, cnn);
myCommand.ExecuteNonQuery ();
} catch (Exception e) {
Console.WriteLine ("Caught exception: " + e.Message);
Console.ReadLine();
} finally {
if (cnn != null) {
cnn.Close ();
}
}
}