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

QT C++ AES字符串加密实现

使用方法:在.h中引入类库。然后在cpp中直接引入使用即可
类库的下载地址
https://download.csdn.net/download/u012372365/88478671
具体代码:
 

#include <QCoreApplication>
#include <QTest>
#ifdef __cplusplus
#include "unit_test/aestest.h"
#include "qaesencryption.h"
#include <QCoreApplication>
#include <QCryptographicHash>
#include <QVector>
#include <QDebug>
#include <QByteArray>
#include <qbytearray.h>
#endifQList<QString> fileList;
QList<QString> saveFileList;//设置密钥  /替换-的目的防止字符串出现转译的情况发生
QString key("dasdlk3214k21ksd");
QString strToSeaBody(QString body){QString string =body;QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::PKCS7);QByteArray enBA = encryption.encode(string.toUtf8(), key.toUtf8());QByteArray enBABase64 = enBA.toBase64();QString jieguo=enBABase64.replace("/","-");return jieguo;
}
QString seaToStrBody(QString str){str.replace("-","/").replace("\n","");QByteArray ba = str.toUtf8(); //方法二QByteArray  enBA = QByteArray::fromBase64(str.toUtf8());QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::ECB, QAESEncryption::PKCS7);QByteArray deBA = encryption.decode(enBA, key.toUtf8());return QString::fromLocal8Bit( QAESEncryption::RemovePadding(deBA, QAESEncryption::PKCS7));
}
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString str("sunwukong");QString jiami=strToSeaBody(str);QString jiemi=seaToStrBody(jiami);qDebug()<<"jiami=="<<jiami;qDebug()<<"jiemi=="<<jiemi;
}

相关文章:

QT C++ AES字符串加密实现

使用方法&#xff1a;在.h中引入类库。然后在cpp中直接引入使用即可 类库的下载地址https://download.csdn.net/download/u012372365/88478671 具体代码&#xff1a; #include <QCoreApplication> #include <QTest> #ifdef __cplusplus #include "unit_tes…...

关于mysql json字段创建索引

前言&#xff1a; 创建索引的方式分为两种&#xff0c;CREATE index 和 ALTER TABLE&#xff1b; 被创建索引的关键字类型又分两种&#xff0c;数字&#xff08;UNSIGNED&#xff09;和字符串&#xff08;char(128)&#xff09; 一、给json对象属性param_value&#xff08;假…...

“探索Linux世界:从CentOS安装到常见命令使用“

目录 引言一、安装CentOS二、Linux的常见命令文件夹和目录操作命令文件编辑命令vi或vim编辑器命令模式编辑模式末行模式 总结 引言 在计算机领域&#xff0c;Linux作为一种强大而灵活的操作系统&#xff0c;在服务器、嵌入式设备和个人电脑等领域广泛应用。本文将引导您了解并…...

SVN出现Cleanup failed to process the following paths...

SVN报错&#xff0c;需要执行SVN的清理命令clean up&#xff0c;但clean up时出现错误Cleanup failed to process the following paths... 解决办法&#xff1a; 1、clean up的窗口&#xff0c;勾选Break locks和Fix time stamps&#xff08;简单方便&#xff09;&#xff1b…...

gitee上传项目

目录 首先在gitee新建一个仓库 接下来创建好项目&#xff0c;先找到生成公钥SSH的目录 接下来是生成公钥SSH 仓库创建好后&#xff0c;接着开始链接项目 首先在gitee新建一个仓库 接下来创建好项目&#xff0c;先找到生成公钥SSH的目录 接下来是找目录&#xff1a;C盘&a…...

实现文件上传和下载

文件上传的前端页面&#xff1a; multiple表示支持一次上传多个文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上传文件</title> </head> <body> <form action"/ge…...

大数据-Storm流式框架(七)---Storm事务

storm 事务 需求 storm 对于保证消息处理&#xff0c;提供了最少一次的处理保证。最常见的问题是如果元组可以被 重发&#xff0c;可以用于计数吗&#xff1f;不会重复计数吗&#xff1f; strom0.7.0 引入了事务性拓扑的概念&#xff0c;可以保证消息仅被严格的处理一次。因此可…...

Kafka - 3.x Kafka消费者不完全指北

文章目录 Kafka消费模式Kakfa消费者工作流程消费者总体工作流程消费者组原理消费者组初始化流程消费者组详细消费流程 独立消费者案例&#xff08;订阅主题&#xff09;消费者重要参数 Kafka消费模式 Kafka的consumer采用pull&#xff08;拉&#xff09;模式从broker中读取数据…...

Gerrit | 重磅! 2.x 版本升级到 3.x 版本----转

Gerrit | 重磅! 2.x 版本升级到 3.x 版本 为什么要做版本升级&#xff1f; 2.x known bugs 重大问题不一一列举&#xff0c;这里仅仅是举几个例子&#xff1a; 安全或权限问题&#xff1a;普通用户能看到敏感数据&#xff0c;例如看到其他用户的 hashed api 密码&#xff0c…...

使用c++编程语言,用递归的方法求第n个斐波那契数,代码如下

#include<iostream> using namespace std;int fib_1(int n) {if (n < 1){return n;}return fib_1(n - 1) fib_1(n - 2); }int main() {cout << fib_1(6);return 0; }...

git config pull.rebase false

git pull 默认使用merge 可以使用 git pull --rebase 命令使用rebase 或者配置 git config pull.rebase true 使 git pull命令执行 git pull --rebase git config pull.rebase false 的作用是设置 Git 在执行 git pull 命令时默认使用 merge 而不是 rebase。 git pull 命…...

Spring面试题:(一)IoC,DI,AOP和BeanFactory,ApplicationContext

IoC&#xff0c;DI&#xff0c;AOP思想 IOC就是控制反转&#xff0c;是指创建对象的控制权的转移。以前创建对象的主动权和时机是由自己把控的&#xff0c;而现在这种权力转移到Spring容器中&#xff0c;并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系。对象与对…...

RabbitMQ如何保证消息不丢失呢?

RabbitMQ 是一个流行的消息队列系统&#xff0c;用于在分布式应用程序之间传递消息。要确保消息不会丢失&#xff0c;可以采取以下一些措施&#xff1a; 持久化消息&#xff1a; RabbitMQ 允许你将消息标记为持久化的。这意味着消息将被写入磁盘&#xff0c;即使 RabbitMQ 服务…...

VR步进式漫游,轻松构建三维模型,带来展示新形式!

引言&#xff1a; 虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;已经成为当今科技领域的一项创新力量&#xff0c;它正在逐渐渗透到不同的领域&#xff0c;其中步进式漫游是VR技术的一项重要应用&#xff0c;它能在各个行业的宣传中发挥重要作用。 一&a…...

英语——分享篇——常用人物身份

常用人物身份 家庭成员类 father 父亲 mother 母亲 grandmother&#xff08;外&#xff09;祖母 grandfather&#xff08;外&#xff09;祖父 son 儿子 daughter 女儿 uncle 叔叔&#xff0c;舅舅 aunt 婶母&#xff0c;舅母 brother 兄弟 sister 姐妹 nephew 侄子 niece…...

202310-宏基组学物种分析工具-MetaPhlAn4安装和使用方法-Anaconda3- centos9 stream

MetaPhlAn 4是一种基于DNA序列的微生物组分析工具&#xff0c;它能够从宏基因组测序数据中识别和分离微生物的组成。以下是安装和使用MetaPhlAn 4的步骤&#xff1a; 安装MetaPhlAn 4&#xff1a; 裸机环境&#xff0c;手动安装 1. 安装依赖项&#xff1a; MetaPhlAn 4需要…...

systrace/perfetto如何看surfaceflinger的vsync信号方法-android framework实战车载手机系统开发

背景&#xff1a; hi&#xff0c;粉丝朋友们&#xff1a; 大家好&#xff01;近期分享了surfaceflinger相关的一些blog&#xff0c;有同学就对相关的一些内容产生了一些疑问。 比如&#xff1a;vsync查看问题&#xff0c;即怎么才可以说是vsync到来了。 比如perfetto中surfac…...

一文带你彻底弄懂js事件循环(Event Loop)

JavaScript事件循环是JavaScript运行时环境中处理异步操作的机制。它允许JavaScript在执行同步代码的同时处理异步任务&#xff0c;以避免阻塞线程并提供更好的用户体验。 本文将在浏览器异步执行原理基础上带你彻底弄懂js的事件循环机制。 浏览器JS异步执行原理 js是单线程…...

数据结构与算法:二叉树之“堆排序”

目录 一、树概念及结构 二、二叉树树概念及结构 特殊的二叉树 三、堆的概念及结构 四、堆的创建 1、声明结构体 2、初始化 3、销毁 4、添加新元素 5、交换元素 6、向上调整 7、判断堆是否为空 8、移除堆顶元素 9、向下调整 10、获取堆元素个数 五、使用堆排序…...

gma 2 教程(三)坐标参考系统:2.基准面/椭球体

安装 gma&#xff1a;pip install gma 地球是一个近似于椭球体的三维物体&#xff0c;而地球上的各种测量和计算都需要一个基准面来进行。基准面是一个虚拟的平面&#xff0c;用于测量和计算地球上的各种物理量。在地球科学中&#xff0c;基准面通常是一个参考椭球体&#xff0…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...