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、注意:不要多次设置密码

相关推荐
Interview Aid11214 分钟前
Google SWE Intern VO 面经:两轮 Coding,Follow-up 考察 BFS 状态
算法
花间相见19 分钟前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin22 分钟前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
用户62799471826224 分钟前
南大通用 GBase 8c 锁等待与死锁排查:从阻塞链到全局事务号
数据库
道虽迩,不行不至26 分钟前
数据库自动连库执行增量脚本-Linux
linux·数据库
GeW27 分钟前
新质生产力发展路线图来了,Linux和数据库人该怎么接
linux·数据库
用户1257585243635 分钟前
GoFrame Vue3开源后台管理系统推荐:数据库与Worker要求怎么验
数据库·后端·go
MaxHua39 分钟前
达梦 DTS 迁移 MySQL 报错 - 3236:此列列表已索引 解决方案
数据库·后端
琳达爱分享39 分钟前
从单机令牌桶到集群限流:一次配额超发的复盘
后端·算法
用户86629784800839 分钟前
Oracle 迁 KingbaseES 全流程:从评估到割接,一个都不能少
数据库