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

相关推荐
2401_831920742 分钟前
C++中的桥接模式
开发语言·c++·算法
m0_743470373 分钟前
C++中的桥接模式变体
开发语言·c++·算法
gulinigar8 分钟前
C++中的观察者模式实战
开发语言·c++·算法
星空露珠10 分钟前
迷你世界UGC3.0脚本Wiki对象模块管理接口 GameObject
开发语言·数据库·算法·游戏·lua
或与且与或非10 分钟前
Redis-Lua脚本调试教程
数据库·redis·lua
困死,根本不会10 分钟前
蓝桥杯 Python 备考全攻略:从入门到进阶的学习路线
笔记·python·学习·算法·蓝桥杯
码界奇点12 分钟前
基于Java GUI和Access数据库的图书馆管理系统设计与实现
java·开发语言·数据库·毕业设计·源代码管理
kiku181816 分钟前
Mysql数据库
数据库·mysql·oracle
油泼辣子多加16 分钟前
【ML】SVM算法原理
人工智能·算法·机器学习·支持向量机·数据挖掘
大阿明17 分钟前
postgresql链接详解
数据库·postgresql