Qt之加密算法[转]
来源:互联网 发布:mac终端怎么退出vim 编辑:程序博客网 时间:2024/06/18 05:39
在写这篇文章之前,我曾反复思量关于加密的叫法是否准确,更为严格来说,应该是密码散列-将数据(如中英文字母、特殊字符)通过复杂的算法转换为另一种固定长度的值。
公共方法
常量 取值 描述 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介绍
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,可以去找相应的工具进行验证! 推荐一个网址:http://www.md5.com.cn/。
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(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::QCryptographicHash(Algorithm method)
构造一个可以把数据创建为加密哈希值的对象。
- QCryptographicHash::~QCryptographicHash()
销毁对象。
- void QCryptographicHash::addData(const char * data, int length)
将第一长度字符数据的加密哈希。
- 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()方法计算
出处: http://blog.sina.com.cn/s/blog_a6fb6cc90101ge8c.html
QByteArray GetMd5( const uchar *pData, int iLength ){ QCryptographicHash md( QCryptographicHash::Md5 ); //密码散列: 将数据(如中英文字母、特殊字符)通过复杂的算法转换为另一种固定长度的值 md.addData( (const char *)pData, iLength ); return md.result();}
0 0
- Qt之加密算法[转]
- Qt之加密算法
- qt 之 加密算法
- Qt之加密算法
- Qt MD5加密算法
- 加密算法之RSA算法
- 加密算法之DES算法
- 加密算法之DES算法
- 加密算法之RSA算法
- 加密算法之RSA算法
- 加密算法之BLOWFISH算法
- 加密算法之MD5算法
- 加密算法之BLOWFISH算法
- 加密算法之MD5算法
- 加密算法之BLOWFISH算法
- Oracle之加密算法
- 加密算法之BLOWFISH算法
- java之对称加密算法
- PostgreSQL使用
- Servlet注解
- MAC 显示隐藏文件/文件夹
- 剑指offer之从尾到头反过来打印每一个结点的值
- 调用支付宝SDK问题
- Qt之加密算法[转]
- Java项目命名规范
- objective-c 2.0的字面量Literals
- VarchartXgantt甘特图与EJS甘特图对比介绍
- mysql免安装版配置
- 屏幕分辨率值
- Zookeeper问题排查
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- 关于Oracle 大数据排序问题的优化之一