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

相关推荐
yngsqq11 小时前
兰顿蚂蚁——CAD二次开发
数据库
sin_hielo11 小时前
leetcode 2110
数据结构·算法·leetcode
Jay200211112 小时前
【机器学习】33 强化学习 - 连续状态空间(DQN算法)
人工智能·算法·机器学习
panzer_maus12 小时前
归并排序的简单介绍
java·数据结构·算法
梁萌12 小时前
ShardingSphere分库分表实战
数据库·mysql·实战·shardingsphere·分库分表
川石课堂软件测试12 小时前
Mysql中触发器使用详详详详详解~
数据库·redis·功能测试·mysql·oracle·单元测试·自动化
鹏说大数据12 小时前
数据治理项目实战系列6-数据治理架构设计实战,流程 + 工具双架构拆解
大数据·数据库·架构
cici1587412 小时前
二值化断裂裂缝的智能拼接算法
人工智能·算法·计算机视觉
唯余旧忆12 小时前
【数据写入】达梦数据库(dm8)merge into写入时序数据速度慢的问题处理
数据库
麦格芬23012 小时前
LeetCode 763 划分字母区间
算法·leetcode·职场和发展