Qt之加密算法
- enum Algorithm { Md4, Md5, Sha1, Sha224, ..., Sha3_512 }
公共方法
- QCryptographicHash(Algorithm method)
- ~QCryptographicHash()
- void addData(const char * data, int length)
- bool addData(QIODevice * device)
- void addData(const QByteArray & data)
- void reset()
- QByteArray result() const
- QByteArray hash(const QByteArray & data, Algorithm method)
- enum QCryptographicHash::Algorithm
常量 | 取值 | 描述 |
QCryptographicHash::Md4 | 0 | 生成一个MD4散列 |
QCryptographicHash::Md5 | 1 | 生成一个MD5散列 |
QCryptographicHash::Sha1 | 2 | 生成一个SHA-1散列 |
QCryptographicHash::Sha224 | 3 | 生成一个SHA-224散列(SHA-2)。在Qt5.0介绍 |
QCryptographicHash::Sha256 | 4 | 生成一个SHA-256散列(SHA-2)。在Qt5.0介绍 |
QCryptographicHash::Sha384 | 5 | 生成一个SHA-384散列(SHA-2)。在Qt5.0介绍 |
QCryptographicHash::Sha512 | 6 | 生成一个SHA-512散列(SHA-2)。在Qt5.0介绍 |
QCryptographicHash::Sha3_224 | 7 | 生成一个SHA3-224散列。在Qt5.1介绍 |
QCryptographicHash::Sha3_256 | 8 | 生成一个SHA3-256散列。在Qt5.1介绍 |
QCryptographicHash::Sha3_384 | 9 | 生成一个SHA3-384散列。在Qt5.1介绍 |
QCryptographicHash::Sha3_512 | 10 | 生成一个SHA3-512散列。在Qt5.1介绍 |
- QCryptographicHash::QCryptographicHash(Algorithm method)
- QCryptographicHash::~QCryptographicHash()
- void QCryptographicHash::addData(const char * data, int length)
- bool QCryptographicHash::addData(QIODevice * device)
- void QCryptographicHash::addData(const QByteArray & data)
- QByteArray QCryptographicHash::hash(const QByteArray & data, Algorithm method) [static]
- void QCryptographicHash::reset()
- QByteArray QCryptographicHash::result() const
QByteArray byte_array;
byte_array.append("password");
QByteArray hash_byte_array = QCryptographicHash::hash(byte_array, QCryptographicHash::Md5);
QString md5 = hash_byte_array.toHex();
QByteArray byte_array;
byte_array.append("password");
QCryptographicHash hash(QCryptographicHash::Md5);
hash.addData(byte_array); //添加数据到加密哈希值
QByteArray result_byte_array = hash.result(); //返回最终的哈希值
QString md5 = result_byte_array.toHex();
md5结果:5f4dcc3b5aa765d61d8327deb882cf99,可以去找相应的工具进行验证!
(2)对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,相比之下,SHA-1则不然。
Qt之加密算法的更多相关文章
- Qt使用AES加密算法对字符串进行加密
因工作需要,需要对字符串进行加密处理,在网上找了很长时间,终于找到了一个可以使用的aes加密算法.其源代码采用c++编写而成,但其头文件引用windows.h,经过修改部分代码,将#inc ...
- DES加解密算法Qt实现
算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...
- AES加解密算法Qt实现
[声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ...
- Qt开发笔记:OpenSSL库介绍、windows上mingw32版本的OpenSSL编译模块化
前言 Windows上mingw32版本的openssl的编译是属于比较棘手的,OpenSSL本身不提供支持.. OpenSSL 介绍 OpenSSL是一个开放源代码的软件库包,应用程序可 ...
- C/C++ Qt 基础通用组件应用
QT 是一个跨平台C++图形界面开发库,利用QT可以快速开发跨平台窗体应用程序,在QT中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率. 目前,QT开发中常用的基础 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- 在.NET Core 里使用 BouncyCastle 的DES加密算法
.NET Core上面的DES等加密算法要等到1.2 才支持,我们可是急需这个算法的支持,文章<使用 JavaScriptService 在.NET Core 里实现DES加密算法>需要用 ...
- 使用 JavaScriptService 在.NET Core 里实现DES加密算法
文章<ASP.NET Core love JavaScript>和<跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题> ...
- Android数据加密之异或加密算法
前言: 这几天被公司临时拉到去做Android IM即时通信协议实现,大致看了下他们定的协议,由于之前没有参与,据说因服务器性能限制,只达成非明文传递,具体原因我不太清楚,不过这里用的加密方式是采用异 ...
随机推荐
- Regex.Escape
C# 字符串变量str 的值为"a\nb"如果直接输出显示的话,就成了:ab需要输出显示为:a\nb问,怎么办?千万别告诉我定义: str=@"a\nb",因为 ...
- “The SQL Server license agreenment cannot be located for the selected edition.”MSSQL安装问题
今天老邹又来吐槽了.今天不和IE7较劲了.说点别的吧. 我呢什么软件都喜欢装最新版的,这部刚出来windows 8.1就赶紧装上了,随后就用上了vs2013.前天看到新闻说微软已经发布了sql ser ...
- .NET Reflector 8.3.3.115 官方最新版+注册机(强大的.NET反编译工具破解版)
Lutz Roeder’s .NET Reflector,是一个可以将以.NET Framework为基础开发出来的的DLL或EXE文件,反编译为原始程序的工具软件..NET Reflector 工具 ...
- iOS中如何使状态栏与下面的搜索栏或NavigationBar或toolBar颜色一致
在iOS7之后,status bar是透明的(transparent),navigation bars,tab bars,toolbars,search bars 和 scope bars 是半透明的 ...
- JavaScript Arguments 实现可变参数的函数,以及函数的递归调用
//可变参数的函数 注:也可以使用对象作为参数来实现 function Max() { var temp = arguments[0] || 0; for (var i = 1; i < arg ...
- JS实现Tab切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- YesFinder - 网页文件管理系统 V2.0
2.0版增加了模态框并重写了右键菜单插件.界面改为全中文.使用方式更加灵活. 同时,文件及目录改名更方便,直接双击名称就可改名. 这是DEMO的效果图. 1.功能上的主要改进是可以双击改文件/目录名称 ...
- iphone微信长按二维码识别不了
在安卓版的微信长按二维码可以识别(前提是你的微信版本到支持此功能),但是到了苹果版的微信就识别不了,经个人测试发现是缩放的问题: 1.设置了初始缩放设置为1,最大缩放值要>=1,不支持缩放.-- ...
- phpcms V9 联动菜单的调用
/*********************************** 通过id获取显示联动菜单的 顶级父类的名称* @param $linkageid 联动菜单id* @param $keyi ...
- C#中HashTable和快速排序的用法
题目主要是写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来. 自从周四拿到题目以后,发现又要用到万恶的数据结构了,不得不说这是我的短板,所有上周20号到 ...