学习SQLite库:第二部分,编译加密版的SQLite

发表时间: 2020-05-13 18:45


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.cHEADERS += \sqlite3ext.h \sqlite3userauth.h

不要添加其他文件了,否则编译有问题。

(3)windows平台下添加模定义文件

win32{DEF_FILE = sqlite3.def}

(4)添加定义

DEFINES += SQLITE3_EXPORTS SQLITE_HAS_CODECDEFINES += 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 4DEFINES += SQLITE_SECURE_DELETE SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_RTREE SQLITE_USER_AUTHENTICATION