Qt使用CipherSqlite插件访问加密的sqllite数据库

1.下载

git clone https://github.com/devbean/QtCipherSqlitePlugin.git

2.编译CipherSqlite插件

使用qt打开QtCipherSqlitePlugin项目,并构建插件

3.将构建的插件复制到安装目录

4.使用DB Browser (SQLCipher)创建数据库并加密



5.qt使用CipherSqlite插件连接加密数据库

cpp 复制代码
	QString dbFilePath = QCoreApplication::applicationDirPath() + "/db/test.db";
    QSqlDatabase dbconn = QSqlDatabase::addDatabase("SQLITECIPHER");
    dbconn.setDatabaseName(dbFilePath);

    dbconn.setPassword("123");
    //如果在debug窗口输出dbconn.driver():  SQLiteCipherDriver(0x2360f83aa30),证明插件导入成功
    qDebug() << "dbconn.driver(): " << dbconn.driver();
    dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher; SQLCIPHER_LEGACY=4; SQLCIPHER_LEGACY_PAGE_SIZE=4096");

    // 打开数据库连接
    if (dbconn.open()) {
        qDebug() << "Success to open the database";
    } else {
        qDebug() << "Failed to open the database:" << dbconn.lastError().text();
    }

相关推荐
人员安全定位3 小时前
仓储物流中UWB标签实现货物实时追踪的技术路径与品铂科技方案解析
大数据·科技·物联网
tangchao340勤奋的老年?3 小时前
QTcpSocket(客户端实现)多线程连接慢问题
c++·qt
你好龙卷风!!!5 小时前
mac m4 Homebrew安装MySQL 8.0
数据库·mysql·macos
binnnngo5 小时前
Spring Boot集成阿里云OSS:对象存储实战指南
数据库·spring boot·阿里云
程序猿ZhangSir5 小时前
Redis 和 MySQL双写一致性的更新策略有哪些?常见面试题深度解答。
java·数据库·spring boot·redis·mysql·缓存·mybatis
StarRocks_labs6 小时前
【活动回顾】StarRocks Singapore Meetup #2 @Shopee
数据库·starrocks·数据分析·spark·olap·物化视图·apache druid
逍遥德6 小时前
【数据库事务、消息队列事务、Redis 事务、Spring 事务 详细分析】
数据库·redis·spring·rabbitmq·rocketmq
nbsaas-boot6 小时前
SQL Server 动态构建 SQL 语句学习指南
数据库·sql
LoveXming8 小时前
Qt 多线程的两种实现方式
开发语言·qt·命令模式
HongXuan-Yuan8 小时前
Spring Boot框架
java·数据库·spring boot