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

相关推荐
S_h_a_6 分钟前
八股-Mysql 基础篇(1)
数据库·mysql
Dxy12393102167 分钟前
MySQL的GROUP_CONCAT函数详解
数据库·mysql
编啊编程啊程31 分钟前
【029】智能停车计费系统
java·数据库·spring boot·spring·spring cloud·kafka
Tiandaren33 分钟前
大模型应用03 || 函数调用 Function Calling || 概念、思想、流程
人工智能·算法·microsoft·数据分析
2301_795167201 小时前
玩转Rust高级应用 如何进行理解Refutability(可反驳性): 模式是否会匹配失效
开发语言·算法·rust
Leon-Ning Liu1 小时前
Oracle数据库常用视图:dba_datapump_jobs
数据库·oracle·dba
小当家.1051 小时前
[LeetCode]Hot100系列.贪心总结+思想总结
算法·leetcode·职场和发展
数据库生产实战2 小时前
Oracle 19C RAC下TRUNCATE TABLE的REUSE STORAGE选项作用和风险浅析!
数据库·oracle
墨雪不会编程2 小时前
数据结构—排序算法篇二
数据结构·算法·排序算法
小白银子2 小时前
零基础从头教学Linux(Day 60)
linux·数据库·mysql·oracle