首页 > 其他分享 >Qt 使用QCryptographicHash做简单的数据加密

Qt 使用QCryptographicHash做简单的数据加密

时间:2024-02-19 14:34:26浏览次数:23  
标签:Sha3 加密 Qt 使用 QCryptographicHash include

  在编写程序的时候经常会使用到一些加密的方法,在Qt中,提供了一些常用的加密方法:Md4,Md5,Sha1,Sha224,Sha256,Sha384,Sha512,Sha3_224,Sha3_256,Sha3_384,Sha3_512,如果我们需要使用这些加密方法时,可以直接使用Qt中的QCryptographicHash类进行加密。

 1 #include <QCryptographicHash>
 2 #include <QCoreApplication>
 3 #include <QDebug>
 4 
 5 int main(int argc, char *argv[])
 6 {
 7     QCoreApplication a(argc, argv);
 8     QByteArray id = QUuid::createUuid().toByteArray();
 9     qDebug() << id;
10     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Md4).toHex();
11     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Md5).toHex();
12     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha1).toHex();
13     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha224).toHex();
14     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha256).toHex();
15     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha384).toHex();
16     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha512).toHex();
17     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha3_224).toHex();
18     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha3_256).toHex();
19     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha3_384).toHex();
20     qDebug() << QCryptographicHash::hash(id, QCryptographicHash::Sha3_512).toHex();
21     return a.exec();
22 }

编译后执行可以看到结果:

 1 liyunlong@liyunlong:~/test$ ./test
 2 "{eb1d57e6-08d6-461d-b939-6bd4e70dfec7}"
 3 "78089e38a3fd1ff9ded18973fca1897c"
 4 "cc789871becfa025f42d72e679d5134d"
 5 "45bcc2a203a8c2ac4b79f857fd516d3871f2447f"
 6 "43e42a2c35bb8cd61fe4fb9cdc85dcb5e8b0ecc3bf9529fd29d1360e"
 7 "c93c4c655c25d553022ef75141fd06118600654f6bc51fb6962ada512a5132bc"
 8 "abd925d43aea8d611fba561192d2de035f20e55f9e087243339da8bcab35215fa1ff901ed14b9b08a4937f39688575e9"
 9 "8f55d056676a8878da67e22076481a481b88afa0ffe80cdd2147a0706c48190d43f9b29256a87317f8a988b984d58fdafbd0eb9fb128e59093e19116955ee9a1"
10 "0d11ee27913bbf634a53e82929d0a8c58e16467a380710f346ef1016"
11 "238af0d1a880a4654c62654b843f248d34d6441138e9c2a0ef918299bde611e4"
12 "7e44e292d94b466f3230f4eb36a0aca44412f7acc241f07d6651199726ae54f463b3a6a11563b04f9a5a64cd4996920a"
13 "dd7765682d1d67e472bc31db7561fbd65e0a818ae702dc263a341230b08fc25c659a3f26def2bf13563a5ecfc7b5b7401163371f7f3c6bef2ae7773b44594a1d"

以后在使用简单的加密时可以采用这种方式,可以免去一些复杂的编写或者其他库的依赖。

标签:Sha3,加密,Qt,使用,QCryptographicHash,include
From: https://www.cnblogs.com/ybqjymy/p/18021032

相关文章

  • Qt 项目实战:基于QMediaPlayer播放器
    QMediaPlayer开发视频播放器Q:我们为何不使用QMediaPlayer?A:QMediaPlayer支持的编解码库太少;QMediaPlayer在windows中解码调用的是DirectShow,在Linux中调用的是GStreamer;相对Windows而言GStreamer扩展编解码库比较方便,但是windows中的DirectShow太老了,DemuxerDecoder都比较麻......
  • Qt 哈希加密 QCryptographicHash
    QCryptographicHash类提供了生成密码散列的方法。该类可以用于生成二进制或文本数据的加密散列值。目前支持MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512。共有类型枚举QCryptographicHash::Algorithm:公共函数voidaddData(constchar*data,intlength)......
  • Qt 项目实战:电子时钟
    电子时钟隐藏widget边框this->setWindowFlags(Qt::FramelessWindowHint);//隐藏边框实时跟踪鼠标this->setMouseTracking(true);//实时跟踪鼠标通过信号与槽来刷新时针分针秒针状态connect(timer,SIGNAL(timeout()),this,SLOT(update()));鼠标左键按下移动窗......
  • Qt 项目实战:MD5工具开发
    MD介绍MD5消息摘要算法(英语:MD5Message­DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(RonaldLinnRivest)设计,于1992年公开,用以取代MD4算法。MD5应用编辑......
  • Qt 项目实战:幸运转盘
    幸运电子转盘基础绘图通过paintEvent来绘图鼠标事件:鼠标左键单击开始旋转Timer:定时器信号与槽1#ifndefWIDGET_H2#defineWIDGET_H34#include<QWidget>5#include<QEvent>6#include<QDebug>7#include<QTimer>8#include<QTime>9#include&l......
  • Qt 使用Http协议通信
    介绍使用QT进行应用开发时,有时候需要进行客户端和服务端的网络通信,网络通信常用的一种协议就是http协议。QT对http协议进行了封装,下面将介绍两种http通信方式的使用。在使用http时需要在pro文件中添加对应的模块。QT+=networkhttp主要两种通信方式为get和post......
  • electron delphi winform wpf qt的对比
    Electron、Delphi、WinForms、WPF和Qt都是用于开发桌面应用程序的工具或框架,它们各自有一些独特的优点和适用场景。以下是对这些工具的简要对比:Electron:基于Web技术(HTML、CSS和JavaScript)的跨平台桌面应用程序开发框架。使用Chromium渲染引擎提供强大的页面渲染能力。适用......
  • 如何用Qt实现一个无标题栏、半透明、置顶(悬浮)的窗口
    在Qt框架中,要实现一个无标题栏、半透明、置顶(悬浮)的窗口,需要一些特定的设置和技巧。废话不多说,下面我将以DrawClient软件为例,介绍一下实现这种效果的四个要点。要点一:移除标题栏(去除关闭、最小化、最大化按钮)在窗口的构造函数中设置窗口的样式,在强调一下,一定要找构造函数中设置,......
  • Unity资源管理系列:Unity项目开发中如何做资源加密
    Unity的游戏很容易被人反编译出来,然后再重新打包发布,把自己辛辛苦苦开发的游戏,抄写的一丝不挂。很多项目要求要做好资源加密,Unity中如何做好资源加密呢?本文給大家分享加密算法+资源打包整合思路:(1)游戏资源加密如何选择加密算法;(2)Assetsbundle资源包的加密与解密;游戏资源......
  • Qt实用技巧:QCustomPlot做北斗GPS显示绝对位置运动轨迹和相对位置运动轨迹图的时,使图按
    需求  使用QCustomPlot绘制多个目标的北斗运行轨迹图,包括累计绝对位置图和记录时刻的相对位置图。  当前绘制存在问题:    交付客户前,公司内部自测流程发现的问题。  实际预期效果为:   原因  QCustomPlot加入数据是按照x轴排列,也可以按照y轴排列,使用图层......