qt 之 加密算法
来源:互联网 发布:查重软件有哪些 编辑:程序博客网 时间:2024/06/06 17:13
转载自:http://blog.sina.com.cn/s/blog_a6fb6cc90101ge8c.html
在写这篇文章之前,我曾反复思量关于加密的叫法是否准确,更为严格来说,应该是密码散列-将数据(如中英文字母、特殊字符)通过复杂的算法转换为另一种固定长度的值。
QCryptographicHash类 在 Qt中,QCryptographicHash类提供了生成密码散列的方法。该类可以用于生成二进制或文本数据的加密散列值。目前支持MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512。 这个类在QtCore4.3中 被引入。
公共类型
- enum
Algorithm { Md4, Md5, Sha1, Sha224, ...,Sha3_512 }
- QCryptographicHash(Algorithmmethod)
- ~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, Algorithmmethod)
成员类型文档
- enum QCryptographicHash::Algorithm
成员函数文档
- QCryptographicHash::QCryptographicHash(Algorithm method)
构造一个可以把数据创建为加密哈希值的对象。
- QCryptographicHash::~QCryptographicHash()
销毁对象。
- void QCryptographicHash::addData(const char * data, intlength)
将第一长度字符数据的加密哈希。
- bool QCryptographicHash::addData(QIODevice * device)
从开放的输入输出设备读取数据,直到结束并哈希它。如果成功读取,则返回true。
QtCore5.0中引入此功能。
- void QCryptographicHash::addData(const QByteArray &data)
这个函数的重载addData()。
- QByteArray QCryptographicHash::hash(const QByteArray &data, Algorithm method) [static]
使用此方法返回哈希数据。
- void QCryptographicHash::reset()
重置对象。
- QByteArray QCryptographicHash::result() const
返回最后的哈希值。
举例(对文本为“password”的字符串加密):
(1)通过静态hase()方法计算
(2)通过result()方法计算
MD5与SHA-1比较 二者均由MD4导出,所以SHA-1和MD5很相似。他们的强度和其它特性也很相似,但还有以下几点不同:
(1)对强性攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5要长32位。使用强行技术,产生任何一个报文使其摘要等于给定报文摘要的难度对MD5为2^128数量级操作,而对SHA-1则是2^160数量级操作。这样,SHA-1对强攻击有更大的优势。
(2)对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,相比之下,SHA-1则不然。
碰撞:由于HASH函数产生定长的密文,结果是有限集合。而待处理的明文可以是计算机网络传输的任何信息。也就是说,明文信息是一个无限集合,密文信息却有限,两集合之间无一一对应关系。总有多个不同明文产生相同密文的情况发生,这就是所谓的碰撞。 MD5与SHA-1曾被认为是足够安全的HASH算法,早在1994就有报告称,运算能力最强的机器,平均24天就可能找到一个MD5碰撞。王小云教授的方法已经为短时间内找到MD5与SHA-1碰撞成为可能。虽然如此,也并不意味着两种方法就此失效,再者,也可以通过自己的手段来进一步处理。比如:通过MD5与SHA结合实现。将A进行MD5处理得到B,将A在进行SHA处理得到C,再将B与C结合(比如:相加),也可把结合后的结果再进行MD5加密。这足以将碰撞机滤降至很小很小,所以没有绝对的安全,只有更安全。
QCA- (基于Qt的加密体系结构)
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
(2)对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,相比之下,SHA-1则不然。
(3)速度:相同硬件上,SHA-1运行速度比MD5慢。
更多参考:
- QCA
- QCA(wiki)
- Using libraries: QCA (Qt CryptographicArchitecture)
注:
0 0
- Qt之加密算法
- Qt之加密算法[转]
- qt 之 加密算法
- Qt之加密算法
- Qt MD5加密算法
- 加密算法之RSA算法
- 加密算法之DES算法
- 加密算法之DES算法
- 加密算法之RSA算法
- 加密算法之RSA算法
- 加密算法之BLOWFISH算法
- 加密算法之MD5算法
- 加密算法之BLOWFISH算法
- 加密算法之MD5算法
- 加密算法之BLOWFISH算法
- Oracle之加密算法
- 加密算法之BLOWFISH算法
- java之对称加密算法
- iOS 指定设置控件圆角
- tornado和ajax交互
- 关于JQuery源码解析
- TextView中文字的跑马灯效果实现,以及focusable,focusableInTouchMode属性介绍
- RSA密码系统
- qt 之 加密算法
- mysql 5.7 增加用户并授权
- wemall商城 7.0 开源系统发布,支持公众号和小程序开发
- selenium--unittest字符串/整型问题Can't convert 'int' object to str implicitly提示解决方法
- 简单拍照
- python 爬虫之路教程
- myeclipse加载tomcat包
- 线程池的原理和连接池的原理
- 有关iOS命名规范