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目录中即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!