我正在C#Windows应用程序中使用SQLite数据库版本3。我想使用密码或任何其他加密方式对SQLite数据库文件进行加密,以防止客户端从程序文件文件夹中打开它。
我不希望任何运行时加密方式,我只想在客户端尝试从程序文件中打开数据库文件时显示密码字段。
编辑
如果我从代码中对其进行了加密,则客户端可以在安装完成后将其打开,并将db文件传输到程序文件中,然后再打开该程序以执行加密,这不是吗?
我使用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(); }
此后,如果用户尝试打开数据库。会说受管理员保护或数据库已加密或者不是数据库或损坏的文件!