sqlite加密-QtCipherSqlitePlugin 下

1、如果只是安装了插件有时是不够的

cpp 复制代码
QCoreApplication::addLibraryPath

需要将插件目录添加到程序中

2、建立一个不加密的db文件

3、设置密码

cpp 复制代码
QString DB_FILE_PATH="d:"; //防止驱动目录乱码
DB_FILE_PATH+="/testCipher.db";
qDebug() << "DB File Path is:" << DB_FILE_PATH;

QSqlDatabase dbconn = QSqlDatabase::addDatabase("SQLITECIPHER");
dbconn.setDatabaseName(DB_FILE_PATH); 
dbconn.setPassword("pass");
dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher; SQLCIPHER_LEGACY=1; SQLCIPHER_LEGACY_PAGE_SIZE=4096; QSQLITE_CREATE_KEY");

bool open = dbconn.open();
qDebug() << "open: " << open;
qDebug() << "isOpen(): " << dbconn.isOpen() << dbconn.isOpenError();
qDebug() << "create_key: " << dbconn.lastError();

if (!dbconn.isOpen())
{
        qDebug() << "Connection failed: " << dbconn.lastError().driverText();
        exit(CONNECTION_FAILED);
}

4、注意:不要多次设置密码

相关推荐
信奥卷王1 分钟前
2025年12月GESPC++一级真题解析(含视频)
算法
曹自标9 分钟前
workflow 拓扑排序算法
windows·算法·排序算法
wen__xvn10 分钟前
代码随想录算法训练营DAY8第四章 字符串part01
算法
mario_z12 分钟前
基于kmines类聚线段算法
前端·javascript·算法
额呃呃14 分钟前
construct对象构造接口
数据库·算法
你怎么知道我是队长17 分钟前
C语言---共用体
c语言·开发语言·算法
一顿操作猛如虎,啥也不是!18 分钟前
redis注册成windows服务,开机启动
数据库·redis·缓存
苏小瀚18 分钟前
[JavaEE] SpringBoot 配置文件
数据库·spring boot·java-ee
xj75730653321 分钟前
《精通Django》第一章 入门
数据库·django·sqlite
cicada1522 分钟前
什么是线程安全?
开发语言·c++·算法