小编典典

我可以用密码加密SQLite数据库吗?

sql

我正在C#Windows应用程序中使用SQLite数据库版本3。我想使用密码或任何其他加密方式对SQLite数据库文件进行加密,以防止客户端从程序文件文件夹中打开它。

我不希望任何运行时加密方式,我只想在客户端尝试从程序文件中打开数据库文件时显示密码字段。

编辑

如果我从代码中对其进行了加密,则客户端可以在安装完成后将其打开,并将db文件传输到程序文件中,然后再打开该程序以执行加密,这不是吗?


阅读 179

收藏
2021-03-17

共1个答案

小编典典

我使用SQLite版本3完美地工作!您必须这样做:

//if the database has already password
try{
            string conn = @"Data Source=database.s3db;Password=Mypass;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }
//if it is the first time sets the password in the database
catch
    {
            string conn = @"Data Source=database.s3db;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }

此后,如果用户尝试打开数据库。会说受管理员保护或数据库已加密或者不是数据库或损坏的文件!

2021-03-17