Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实体框架支持的开源SQLite数据库加密?_Sqlite_Entity Framework 5 - Fatal编程技术网

实体框架支持的开源SQLite数据库加密?

实体框架支持的开源SQLite数据库加密?,sqlite,entity-framework-5,Sqlite,Entity Framework 5,我正在开发一个将SQLite用于数据库的应用程序。我正在使用SQLite的Devart dotconnect()和.NET4.5中的实体框架与数据库进行接口。我对使用加密保护数据库很感兴趣。我也看过这篇文章。乍一看,Devart和entity framework支持的唯一加密是SEE,一个许可证要花2000美元。您是否知道任何与此设置兼容的开源解决方案?我对entity framework有点陌生,所以我甚至不确定entity framework解密数据库时幕后会发生什么。。。也许有一个我没有考

我正在开发一个将SQLite用于数据库的应用程序。我正在使用SQLite的Devart dotconnect()和.NET4.5中的实体框架与数据库进行接口。我对使用加密保护数据库很感兴趣。我也看过这篇文章。乍一看,Devart和entity framework支持的唯一加密是SEE,一个许可证要花2000美元。您是否知道任何与此设置兼容的开源解决方案?我对entity framework有点陌生,所以我甚至不确定entity framework解密数据库时幕后会发生什么。。。也许有一个我没有考虑过的替代方案?

好了,已经5天了,没有人回答,所以我将公布我的发现。
我没有找到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 ();

            }
        }
    }