记录用wxsqlite实现sqlite加密。
1.编译生成wxsqlite的lib库
参考的网上一些博客资料建的工程,没做记录,忘了是那个博客的了。具体见工程源码
2.测试
测试代码:
#include "stdafx.h" #include "sqlite3.h" #pragma comment(lib,"wxsqlite3.lib") int _tmain(int argc, _TCHAR* argv[]) { int result=0; sqlite3 *db=NULL; result=sqlite3_open("test.db",&db); result=sqlite3_key(db,"abcd",4); //使用密码,第一次为设置密码 //result=sqlite3_rekey(db,NULL,0); //清空密码 result=sqlite3_exec(db,"PRAGMA synchronous = OFF",0,0,0); //提高性能 result=sqlite3_exec(db,"PRAGMA cache_size = 8000",0,0,0); //加大缓存 result=sqlite3_exec(db,"PRAGMA count_changes = 1",0,0,0); //返回改变记录数 result=sqlite3_exec(db,"PRAGMA case_sensitive_like = 1",0,0,0); //支持中文LIKE查询 result=sqlite3_exec(db,"CREATE TABLE [MyTable] ([ID] INTEGER PRIMARY KEY NOT NULL,[MyText] TEXT NULL)",0,0,0); return 0; }
测试加密情况:
Navicat直接连接:
输入错误密码:
密码是4位的 abcd,我只输入了一位,连接错误。
输入正确密码:
工程源码:https://gitee.com/betterwgo/wxsqlite3_demo
注意wxsqlite.lib的位置