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加密解密相关推荐

  1. QT 基于AES加解密的使用,解析java端发来的密文

    背景 java端往ukey中写授权信息,C++端从ukey中读取授权信息. java端写入的授权信息是加密的,并且要可逆. 因为java端采用的是AES加密的,所以我(C++端)也只好采用对等形式搞定 ...

  2. java php aes加密解密_php aes 加密解密可与java对接

    php aes 加密解密可与java对接 博主:liu1693 发表时间:2017-02-23 16:52:27 浏览量:100 class Encrypt{ //加密方法 public static ...

  3. android、ios、php之间AES加密解密

    使用原因: 因为在项目中,需要在与客户端(IOS,Android)交互的时候,保存一些私有信息,不被别人看到,所以,使用了比较流行的可以反向加解密的AES. PHP 源码 <?php$aes = ...

  4. python 加密解密_python实现AES加密解密

    本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原 ...

  5. AES加密解密算法Java实现

    AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...

  6. openssl与cryptoAPI交互AES加密解密

    原文: http://blog.csdn.net/zhouyuqwert/article/details/7422467 有读者指出代码贴两遍,修改下. 继上次只有CryptoAPI的加密后,这次要实 ...

  7. c php aes加密解密,php的AES加密解密

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $privateKey = "1234567812345678"; $ ...

  8. 理解AES加密解密的使用方法

    很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...

  9. C#中使用DES和AES加密解密

    代码 using System; using System.Text; using System.Security.Cryptography; using System.IO; namespace M ...

  10. C语言实现AES加密解密

    AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...

最新文章

  1. python字符串拼接数字_python字符串和数值操作函数大全(非常全)
  2. CSDN 十大技术主题盘点-AI篇
  3. python numpy矩阵索引_python-为什么scipy csr矩阵的行索引比numpy数组...
  4. 牛客网 在线编程 数据流中的中位数
  5. python123数值运算代码_Python中的变量、数据类型(数值、列表)操作实例
  6. 【luogu P3627 [APIO2009]抢掠计划】 题解
  7. 05-netty小例子
  8. 如何使用print()打印类的实例?
  9. SparkSQL中数据集类的封装
  10. Python---HTML表单
  11. android 平板 吃鸡,怎么用平板玩端游,怎么用平板玩端游吃鸡
  12. lua——牛牛牌型处理相关算法(中)——牌型判定
  13. HTTP Live Streaming
  14. Visual Tracking Resources
  15. 【牛奶豆腐汤喝出小蛮腰】
  16. 【HNOI2017】大佬-dalao
  17. goland集成golint
  18. python工程师怎么考-【一个合格的Python工程师需要达到怎样的编程水平】
  19. linux+4t分区+扩容lvm,Linux中利用LVM实现分区动态扩容
  20. 关于电影的HTML网页设计-威海影视网站首页-电影主题HTM5网页设计作业成品

热门文章

  1. 控制反转和依赖注入的理解(通俗易懂)
  2. UWP: 通过命令行启动 UWP 应用
  3. UiPath Excel内容去重操作
  4. hub设备_「网络安全」网络设备篇(9)——集线器Hub
  5. 区块链是什么通俗解释_区块链是什么?1个例子通俗解释,小白秒懂!
  6. android打开iso,安卓手机端如何运行iso镜像文件
  7. mysql数据文件后缀名_数据文件的后缀名_MySQL
  8. 树莓派安装opencv3.4.3时缺少boostdesc等文件及一些常见的报错
  9. 黑帽SEO的作弊手法:
  10. day01学习过程笔记