当前位置: 首页 > wzjs >正文

台州网站建站公司廊坊网站建设官网

台州网站建站公司,廊坊网站建设官网,北京网站 百度快照,前台网站系统源码QT使用WxSQLite3打开加密数据库并查询 这篇文章主要目的是让大家快速实现打开加密sqlite数据库的功能,并没有对其中所用的库进行详细说明,还请见谅 一、SQLite3MultipleCiphers 这个库集成了多种wxsqlite的加密算法,可以通过在代码中随意切…

QT使用WxSQLite3打开加密数据库并查询

这篇文章主要目的是让大家快速实现打开加密sqlite数据库的功能,并没有对其中所用的库进行详细说明,还请见谅

一、SQLite3MultipleCiphers

这个库集成了多种wxsqlite的加密算法,可以通过在代码中随意切换不同的加密算法。
github地址:https://github.com/utelle/SQLite3MultipleCiphers?tab=readme-ov-file

编译

我使用的是release 2.1.2版本的源码。
直接在vscode中打开使用cmake构建,选择和你QT项目对应的编译工具,CMakeLists基本不用修改,直接编译就行了。,
编译完成后得到:

libsqlite3mc.dll
libsqlite3mc.dll.a

头文件我是从sqlite3mc-2.1.2-sqlite-3.50.0-win32.zip中获取的
https://github.com/utelle/SQLite3MultipleCiphers/releases/download/v2.1.2/sqlite3mc-2.1.2-sqlite-3.50.0-win32.zip

二、QT中实现

引用libsqlite3mc

在.pro文件中添加如下,我把libsqlite3mc.dll.a放在项目目录的libs文件夹中

LIBS += -L$$PWD/libs -llibsqlite3mc.dll

头文件引用:

#放在项目目录的utils/wxsqlite文件夹中
INCLUDEPATH += $$PWD/utils/wxsqlite

不要忘了libsqlite3mc.dll要放在编译出来的测试程序目录下哦

功能代码-打开数据库测试

部分代码由AI生成

// 加密算法类型
QList<QString> CODEC_TYPE_NAME_LIST = {"AEGIS", "Ascon-128", "SQLCipher", "System.Data.SQLite: RC4", "ChaCha20", "wxSQLite3: AES 128 Bit", "wxSQLite3: AES 256 Bit"};
QList<QString> CODEC_TYPE_LIST = {"aegis", "ascon128", "sqlcipher", "rc4", "chacha20", "aes128", "aes256"};sqlite3* db;
// db_path是数据库文件路径
if (SQLITE_OK != sqlite3_open(db_path.toStdString().c_str(), &db)) {ui->label_test_status->setText(tr("数据库打开失败"));return;
}// 设置密码
bool result = true;
// cipher是加密算法类型
std::string cipher = CODEC_TYPE_LIST[ui->comboBox_codec_type->currentIndex()].toStdString().c_str();
std::string pragma = "PRAGMA cipher = '" + cipher + "';";
result &= SQLITE_OK == sqlite3_exec(db, pragma.c_str(), nullptr, nullptr, nullptr);
pragma = "PRAGMA key = '" + password.toStdString() + "';";
result &= SQLITE_OK == sqlite3_exec(db, pragma.c_str(), nullptr, nullptr, nullptr);
if (!result) {ui->label_test_status->setText(tr("设置密码失败"));return;
}char* errMsg = nullptr;
// 执行查询
const char* sql = "SELECT name FROM sqlite_master WHERE type='table';";
if (sqlite3_exec(db, sql, nullptr, nullptr, &errMsg) != SQLITE_OK) {ui->label_test_status->setText(errMsg);sqlite3_free(errMsg);
} else {ui->label_test_status->setText(tr("测试成功"));
}// 关闭数据库
sqlite3_close(db);

简单地写一个QT界面:在这里插入图片描述

测试Demo

只要成功打开了数据库后续的操作就是传统的sqlite代码了,这有一个简单的demo,大家有需要的可以下载试试看,有问题可以评论交流一下。
https://gitee.com/gjhjsan/qt-wxsqlite3-demo
在这里插入图片描述


文章转载自:

http://iRqqWoHM.nddzr.cn
http://xXDLCyxD.nddzr.cn
http://Pu4hVWvE.nddzr.cn
http://ZSbQu7du.nddzr.cn
http://acNglHUb.nddzr.cn
http://wM6TzPYS.nddzr.cn
http://LfK0TcQS.nddzr.cn
http://2fwXzQML.nddzr.cn
http://eJEuB4AT.nddzr.cn
http://ru0AZGx5.nddzr.cn
http://GPQBHtQ8.nddzr.cn
http://xKtUv3AY.nddzr.cn
http://aAtUVG77.nddzr.cn
http://YUlDG3kM.nddzr.cn
http://WWu3nPGq.nddzr.cn
http://Hdny9C8h.nddzr.cn
http://CkjS2HSI.nddzr.cn
http://J60ylB4T.nddzr.cn
http://Hm0xea19.nddzr.cn
http://r6TfJznA.nddzr.cn
http://qnMa0Bps.nddzr.cn
http://suaMUtDS.nddzr.cn
http://fAXibD2q.nddzr.cn
http://JM53uwP7.nddzr.cn
http://eoladjQp.nddzr.cn
http://QSFTQbOs.nddzr.cn
http://Xhyh4IWj.nddzr.cn
http://y8tkW3mC.nddzr.cn
http://7FWv6iiH.nddzr.cn
http://wIsmJMee.nddzr.cn
http://www.dtcms.com/wzjs/682266.html

相关文章:

  • 上传网站空间上海手机网站制作
  • 企业建站系统是什么网站专题报道怎么做
  • 谷歌网站推广排名工具wordpress 后台登陆 修改
  • 网站建设中什么意思9 1短视频安装
  • 东莞市塘厦网站建设壹网
  • 求跳转代码来自百度等搜索引擎访问跳转到另一个网站直接输入域名如何在网站做旅游产品
  • 潍坊网站建设方案推广宁波seo优化外包公司
  • 郑州网站建设 股权投资学院网站建设投标
  • 网站推广方式关键词优化排名易下拉稳定
  • 昆明做网站设计谷秋精品课程网站建设软件
  • 网站续费开发门户网站
  • 泰安网站建设哪家快深圳公司开发网站
  • 做网站需要什么技能西安 医疗网站建设
  • 做平面什么网站好用龙岩招聘网最新招聘在龙岩的工作
  • 上海建站提供商怎么样建设网站网站
  • 盐城建站江西网站开发软件公司
  • vpn网站模板wordpress 分类信息主题
  • 本地镇江网站建设长沙设计网站多少钱
  • 网站安全建设管理制度会展网站代码源码
  • 什么是网站设计在网站上做送餐外卖需要哪些资质
  • 金融棋牌网站建设wordpress 页面模板 自定义
  • 做商城型网站汕头网页制作
  • 钟落潭有没有做网站的云南品牌网站开发
  • 网站建设设计主要系统网站建设这个职业是什么
  • 用wordpress做站群深圳网站建设服务什么便宜
  • 西宁市建设网站多少钱高端品牌网站建设九五网络
  • 温州制作企业网站厦门人才网唯一官网登录
  • wordpress建站教程视频做儿童文学有哪些的网站
  • 企业网站建设范文淘宝网页版登陆
  • 黑龙江网站备案管理局重庆装修