sqlite加密

记录用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直接连接:

image

输入错误密码:

image

密码是4位的  abcd,我只输入了一位,连接错误。

输入正确密码:

image

image

工程源码:https://gitee.com/betterwgo/wxsqlite3_demo

注意wxsqlite.lib的位置

原文地址:https://www.cnblogs.com/betterwgo/p/8136725.html