1、wxSqlite介绍
我们在使用mysql等其他数据库时需要输入用户名和密码,但是sqlite数据库就是一个文件,使用navicat、sqlitebrowser等软件就可以直接打开数据库查看,没有一点保护措施。如果在开发中,我们不希望别人知道数据库里面的内容,那么就需要加密版的sqlite库,也就是wxsqlite。
实际上wxsqlite不仅包含加密功能,还包含字符转换和用户授权等功能。
2、wxSqlite编译成动态库
这里用Qt Creator穿件工程,编译得到wxsqlite动态库。
(1)下载地址
https://download.csdn.net/download/no2101/12415973
(2)pro文件添加头文件和源文件
SOURCES += \
sqlite3secure.c
HEADERS += \
sqlite3ext.h \
sqlite3userauth.h
不要添加其他文件了,否则编译有问题。
(3)windows平台下添加模定义文件
win32{
DEF_FILE = sqlite3.def
}
(4)添加定义
DEFINES += SQLITE3_EXPORTS SQLITE_HAS_CODEC
DEFINES += CODEC_TYPE=CODEC_TYPE_AES128 SQLITE_CORE
//这就是加密算法
// #define CODEC_TYPE_AES128 1
//#define CODEC_TYPE_AES256 2
//#define CODEC_TYPE_CHACHA20 3
//#define CODEC_TYPE_SQLCIPHER 4
//#define CODEC_TYPE_MAX 4
DEFINES += SQLITE_SECURE_DELETE SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_RTREE SQLITE_USER_AUTHENTICATION