我正在使用C# Windows应用程序与SQLite数据库版本3。
我希望能够通过密码或其他加密方式来加密SQLite数据库文件,以防止客户从程序文件夹中打开它。
我不想使用任何运行时的加密方式,我只想在客户尝试从程序文件中打开数据库文件时显示密码字段.. 谢谢
编辑
如果我从代码中加密它,当安装完成并将数据库文件转移到程序文件夹之前,客户端能否在打开程序执行加密操作之前打开它?
我正在使用C# Windows应用程序与SQLite数据库版本3。
我希望能够通过密码或其他加密方式来加密SQLite数据库文件,以防止客户从程序文件夹中打开它。
我不想使用任何运行时的加密方式,我只想在客户尝试从程序文件中打开数据库文件时显示密码字段.. 谢谢
编辑
如果我从代码中加密它,当安装完成并将数据库文件转移到程序文件夹之前,客户端能否在打开程序执行加密操作之前打开它?
我使用的是 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();
}
之后如果用户试图打开该数据库,将会显示“由管理员保护”或“该数据库已加密”或“不是一个数据库文件”或“文件已损坏”!SQLiteConnection.CreateFile()
时间设置了密码。 - Jack尝试使用 sqlitestudio.pl
作为编辑器。
在连接时,选择 System.Data.SQLite
作为数据库类型。
很遗憾,SQlite文件中的密码只能通过代码添加、删除或更改。为此,您需要使用System.Data.SQLite
命名空间,该命名空间将为您提供方法以及适配器和连接等内容。
您可以使用内置的加密功能,通过 sq-lite
.net 提供程序 (System.Data.SQLite) 来实现。
尝试以下链接:
http://sqlite.phxsoftware.com/forums/t/130.aspx在此输入链接描述
或者使用: