QT使用AES加密解密
QT使用AES加密解密
项目原因需要使用aes加密操作
文章目录
- QT使用AES加密解密
- 前言
- 一、AES是什么?
- 二、使用步骤
- 1.引入库
- 密钥长度:
- 加密方式:
- 填充方式:
- 将代码克隆到本地
- 2.使用
- 总结
前言
项目原因需要使用aes加密操作,记录一下使用过程
一、AES是什么?
参考java版本介绍
二、使用步骤
1.引入库
从gitee上找到一个封装代码,https://gitee.com/BlueBuger/Qt-AES.git
这个库支持:
密钥长度:
- AES_128
- AES_192
- AES_256
加密方式:
- ECB
- CBC
- CFB
- OFB
填充方式:
- ZERO
- PKCS7
- ISO
将代码克隆到本地
git clone https://gitee.com/BlueBuger/Qt-AES.git
将.h文件和.cpp文件复制到自己的项目中,并在.pro文件中引入
2.使用
案例以AES-128在CBC模式下PKCS7填充为例base64编码输出
代码如下:
void JxThread::encodeAES()
{/*加密步骤:* 1、设置字符串负载load、密码key、偏移量iv;* 2、字符串转字节数组;* 3、encryption.encode(input, key,iv)加密;* 4、base64编码输出;* 解密步骤:* 1、设置字符串密码key、偏移量iv、密文code;* 2、字符串转字节数组;* 3、密文base64解码;* 4、encryption.decode(code, key,iv)解密;* 5、QByteArray decode = QAESEncryption::RemovePadding(decodedText,QAESEncryption::PKCS7)移除填充;* 6、转字符串输出;*/QAESEncryption encryption(QAESEncryption::AES_128, QAESEncryption::CBC , QAESEncryption::PKCS7);
//----------------QString->QByteArray----------------QByteArray input(load.toLocal8Bit());QByteArray key = aesKey.toLocal8Bit();QByteArray iv = aesIv.toLocal8Bit();QByteArray encodedString = encryption.encode(input, key,iv).toBase64();QString encoded = encodedString;QByteArray encoded1 = encoded.toUtf8();qDebug()<<encoded1;
}
更多代码示例可以查看项目的main.cpp
总结
总之qt在使用AES加密解密还是很方便的,在服务端java环境下需要查看java支持的模式及填充方法来协调使用。同时,可以使用在线aes工具配合调试使用。
例如: 在线AES工具。
QT使用AES加密解密相关推荐
- QT 基于AES加解密的使用,解析java端发来的密文
背景 java端往ukey中写授权信息,C++端从ukey中读取授权信息. java端写入的授权信息是加密的,并且要可逆. 因为java端采用的是AES加密的,所以我(C++端)也只好采用对等形式搞定 ...
- java php aes加密解密_php aes 加密解密可与java对接
php aes 加密解密可与java对接 博主:liu1693 发表时间:2017-02-23 16:52:27 浏览量:100 class Encrypt{ //加密方法 public static ...
- android、ios、php之间AES加密解密
使用原因: 因为在项目中,需要在与客户端(IOS,Android)交互的时候,保存一些私有信息,不被别人看到,所以,使用了比较流行的可以反向加解密的AES. PHP 源码 <?php$aes = ...
- python 加密解密_python实现AES加密解密
本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原 ...
- AES加密解密算法Java实现
AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...
- openssl与cryptoAPI交互AES加密解密
原文: http://blog.csdn.net/zhouyuqwert/article/details/7422467 有读者指出代码贴两遍,修改下. 继上次只有CryptoAPI的加密后,这次要实 ...
- c php aes加密解密,php的AES加密解密
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $privateKey = "1234567812345678"; $ ...
- 理解AES加密解密的使用方法
很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...
- C#中使用DES和AES加密解密
代码 using System; using System.Text; using System.Security.Cryptography; using System.IO; namespace M ...
- C语言实现AES加密解密
AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...
最新文章
- python字符串拼接数字_python字符串和数值操作函数大全(非常全)
- CSDN 十大技术主题盘点-AI篇
- python numpy矩阵索引_python-为什么scipy csr矩阵的行索引比numpy数组...
- 牛客网 在线编程 数据流中的中位数
- python123数值运算代码_Python中的变量、数据类型(数值、列表)操作实例
- 【luogu P3627 [APIO2009]抢掠计划】 题解
- 05-netty小例子
- 如何使用print()打印类的实例?
- SparkSQL中数据集类的封装
- Python---HTML表单
- android 平板 吃鸡,怎么用平板玩端游,怎么用平板玩端游吃鸡
- lua——牛牛牌型处理相关算法(中)——牌型判定
- HTTP Live Streaming
- Visual Tracking Resources
- 【牛奶豆腐汤喝出小蛮腰】
- 【HNOI2017】大佬-dalao
- goland集成golint
- python工程师怎么考-【一个合格的Python工程师需要达到怎样的编程水平】
- linux+4t分区+扩容lvm,Linux中利用LVM实现分区动态扩容
- 关于电影的HTML网页设计-威海影视网站首页-电影主题HTM5网页设计作业成品
热门文章
- 控制反转和依赖注入的理解(通俗易懂)
- UWP: 通过命令行启动 UWP 应用
- UiPath Excel内容去重操作
- hub设备_「网络安全」网络设备篇(9)——集线器Hub
- 区块链是什么通俗解释_区块链是什么?1个例子通俗解释,小白秒懂!
- android打开iso,安卓手机端如何运行iso镜像文件
- mysql数据文件后缀名_数据文件的后缀名_MySQL
- 树莓派安装opencv3.4.3时缺少boostdesc等文件及一些常见的报错
- 黑帽SEO的作弊手法:
- day01学习过程笔记