1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStreamfs=File.Create(“c:\\test.db“);
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile(“c:\\test.db“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnection.CreateFile(“c:\\test2.db“);
SQLiteConnectioncnn=newSQLiteConnection(“DataSource=c:\\test2.db“);
SQLiteConnectioncnn=newSQLiteConnection(“DataSource=D:\\test2.db“);
cnn.Open();
cnn.ChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnectioncnn=newSQLiteConnection(“DataSource=c:\\test.db“);
cnn.Open();
cnn.ChangePassword(“password“);
4、打开加密sqlite数据库
//方法一
SQLiteConnectioncnn=newSQLiteConnection(“DataSource=c:\\test2.db“);
cnn.SetPassword(“password“);
cnn.Open();
//方法二
SQLiteConnectionStringBuilderbuilder=newSQLiteConnectionStringBuilder();
builder.DataSource=@”c:\test.db“;
builder.Password=@”password“;
SQLiteConnectioncnn=newSQLiteConnection(builder.ConnectionString);
cnn.Open();
分页
select * from messages limit 10,100;
表示跳过10行,取100行的返回结果。
sqlite的源代码中原本就考虑了加密的实现,并且保留了接口sqlite3_key和sqlite3_rekey,只是这两个函数在free版本中没有实现,但幸运的是,sqlite的源代码的代码是开放并允许修改,我们可以很方便的增加加密的实现。在http://www.sqlite.com.cn/POParticle/3/216.Html链接的的代码包中就包含有可加密sqlite的源代码的实现,我根据这个包编译了一个可加密的sqlite。这个包加密实现调用了windows
API的加密函数,所以只能在windows中使用。
这个可加密的版本是在一个ADO.NET 2.0SQLiteData Provider的基础上改过来的(http://www.sqlite.com.cn/POParticle/3/216.Html),据原作者声称效率损失在千分之一以下。原始工程是基于VS2005的,但是考虑到其普及性还不是很广,所以重新建立了一个居于VC2003的工程。
其实SQLite的两个加密函数使用起来非常的简单,下面分情况说明:
①给一个未加密的数据库添加密码:如果想要添加密码,则可以在打开数据库文件之后,关闭数据库文件之前的任何时刻调用sqlite3_key函数即可,该函数有三个参数,其中第一个参数为数据库对象,第二个参数是要设定的密码,第三个是密码的长度。例如:sqlite3_key(db,"1q2w3e4r",8);//给数据库设定密码1q2w3e4r
②读取一个加密数据库中的数据:完成这个任务依然十分简单,你只需要在打开数据库之后,再次调用一下sqlite3_key函数即可,例如,但数据库密码是123456时,你只需要在代码中加入sqlite3_key(db,"123456",6);
①更改数据库密码:首先你需要使用当前的密码正确的打开数据库,之后你可以调用sqlite3_rekey(db,"112233",6)来更改数据库密码。
②删除密码:也就是把数据库恢复到明文状态。这时你仍然只需要调用sqlite3_rekey函数,并且把该函数的第二个参数置为NULL或者"",或者把第三个参数设为0。
分享到:
相关推荐
Qt中SQlite数据库加密SqliteCipher 操作实例,打开多个数据库,附着数据库跨库查询, 对应说明:https://blog.csdn.net/woguanni/article/details/120524602
SQLite数据库加密解密小工具,只用于.Net中使用SQLite时的加密和加密
Sqlite数据库加密、解密工具,主要是用于进行给Sqlite数据库进行加密,修改密码的工具
基于Android平台的SQLite数据库加密研究.pdf
一个关于SQLite数据库加密和解密的小工具,希望对大家有所帮助
该代码实现了android的sqlite数据库的加密和解密
SQLite 数据库加密的一种解决方案,对SQLite这种小型的数据库也可以进行加密
Qt中SQlite数据库加密SqliteCipher 操作实例,打开多个数据库,附着数据库跨库查询.zip
Sqlite数据库加密、解密工具所用到的数据库,可用于测试该工具,进行学习使用
实现拖拽treeview构件 也实现拖拽listview 树连接数据库, 演示firedac 连接 实现sqlite数据库加密解密,本源代码可以作为密码本制作,也可以用作个人日记,记事本源代码 支持XE6,XE5,相关源代码的打包
sqlcipher3.0.1数据库解密工具
Qt自带了sqlite的驱动,也有各种文件的读写操作,用起来很是方便,这里仅仅是做了一个简单的封装,方便多个数据库和多个文件的操作。
1、加密前需打开数据库获取路径。 2、修改密码必须在textbox2中输入原始密码。 3、项目中连接加密sqltie方法: //方法示例 SQLiteConnection cnn = new SQLiteConnection("Data Source=c://test2.db"); cnn.Set...
sqlite3 数据库支持加密,分别使用QtCreator 和 VS2017 分别编译出64位 debug release DLL , (QtCreator只有动态 使用mingW 64 MSVC20147) (VS2017 有动态DLL和静态库 V14.1 ) 有工程源码,也可自行编译。 实例: ...
QT自带的Sqlite引擎是不支持加密的,所以自己实现了能够加密的Sqlite引擎,继承QSqlDriver实现的,与其他数据库一样使用QSqlDatabase进行操作,与QT自带数据库操作保持一致。文件包含项目源码及测试代码。
①可以获取到关于Sqlite数据库的2种常用连接字符串【不加密、加密】(也可以自己传入); ②可以代码直接创建Sqlite数据库; ③可以直接创建Sqlite数据库的表; ④实现了通用的sql语句执行帮助类(包含单条数据的...
基于sqlite3的加密版本的数据库动态链接库,附lib和.h头文件,新测试可用。可设置密码和修改密码,加密后的数据库文件是无法被打开的。官方提供的免费版本sqlite3都是没有加密的,官方收费的很贵哦,有需要的朋友...
这个是qt调用sqlite3加密的源码,亲测可用,我的编译环境是qt5.9.0。
SQLite Security ODBC 驱动实现了Windows、Linux等平台下可以使用ODBC访问SQLite数据库的能力,并提供SQLite的加密引擎实现对SQLite数据库的透明加密。对于熟悉ODBC的开发人员很容易上手,同时也便于用户应用由其他...
修改SQLite3数据库的密码 备注:在不替换SQLite3.dll的前提下,本程序生成的带密码的db.db文件可以用SQLiteExpert_3.4.34.2256打开,如换作其它SQLite3.dll这个文件,则不保证,但换了别的SQLite3.dll本程序依然可用,只有...