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

相关推荐
向阳@向远方21 分钟前
第二章 简单程序设计
开发语言·c++·算法
GreatSQL社区23 分钟前
用systemd管理GreatSQL服务详解
数据库·mysql·greatsql
掘根24 分钟前
【MySQL进阶】错误日志,二进制日志,mysql系统库
数据库·mysql
weixin_4383354026 分钟前
基础知识:mysql-connector-j依赖
数据库·mysql
小明铭同学42 分钟前
MySQL 八股文【持续更新ing】
数据库·mysql
Mr_Xuhhh1 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构
Fireworkitte1 小时前
Redis 源码 tar 包安装 Redis 哨兵模式(Sentinel)
数据库·redis·sentinel
github_czy1 小时前
RRF (Reciprocal Rank Fusion) 排序算法详解
算法·排序算法
qq_339282231 小时前
postgressql 如何修改模式的所有表的所有者
数据库