qt 6 使用sqlite进行加密

在做项目时使用的sqlite,但是这个数据库没有自带的密码设置,查了好多资料,终于解决了,感谢这个博主大佬的资料

qt sqlite数据库加密和navicat实现互连互通_qt sqlite aes_128_cbc-CSDN博客

下面仅供个人记录做参考

1.https://codeload.github.com/devbean/QtCipherSqlitePlugin/zip/refs/heads/develop

从git下载源码下来,编译 ,编译的时候只能编译debug类型的,编译出来的dll 拷贝到qt路径

2.编写qt示例代码,注:从navicat 创建的加密文件是aes128cbc的方式的,一定要把解密方式设置成这个,不然创建的db navicat会打不开,或者navicat创建的内容qt会识别不了

qDebug() << QSqlDatabase::drivers();
bool success;
QSqlDatabase db = QSqlDatabase::addDatabase("SQLITECIPHER");
db.setDatabaseName("F:/test3333.db");
db.setPassword("123456");
db.setConnectOptions("QSQLITE_USE_CIPHER=aes128cbc");

if(!db.open()){
qDebug()<<"无法打开数据库";
}
else {
qDebug()<<"成功打开数据库";
}

这个博客也有介绍 

带有加密功能的 SQLite Qt 插件(v1.0) - DevBean Tech World

 

注意:该模式无法使用release 模式,使用release的dll 请使用mxrcode/QtCipherSqlitePlugin: A Qt plugin for SQLite encryption for use in the TaskGuard project (Qt 6.8.0, sqlite3mc 1.9.0)  将对应的dll放置在构建目录下sqldrivers目录中即可

 

posted @   绝世菜鸟  阅读(413)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示