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

相关推荐
Tisfy20 小时前
LeetCode 2906.构造乘积矩阵:前后缀分解
算法·leetcode·前缀和·矩阵·题解·前后缀分解
2501_9454248021 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
qq_2837200521 小时前
MySQL技巧(六):忘记密码的7种自救方案与深度解析
数据库·mysql
njidf21 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
weixin_6495556721 小时前
C语言程序结构第四版(何钦铭、颜晖)第十章函数与程序结构之递归实现顺序输出整数
c语言·数据结构·算法
想七想八不如1140821 小时前
复试简历复盘--CV论文
算法
cm65432021 小时前
C++中的空对象模式
开发语言·c++·算法
2401_8512729921 小时前
C++代码规范化工具
开发语言·c++·算法
Yzzz-F21 小时前
Problem - 2167F - Codeforces
算法
MORE_7721 小时前
leecode100-跳跃游戏-贪心算法
算法·游戏·贪心算法