Qt之加密算法[转]
2015-06-11 14:35
573 查看
在写这篇文章之前,我曾反复思量关于加密的叫法是否准确,更为严格来说,应该是密码散列-将数据(如中英文字母、特殊字符)通过复杂的算法转换为另一种固定长度的值。
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()方法计算
QByteArray
byte_array;
byte_array.append("password");
QByteArray
hash_byte_array = QCryptographicHash::hash(byte_array, QCryptographicHash::Md5);
QString
md5 = hash_byte_array.toHex();
(2)通过result()方法计算
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/。
出处: 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(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)
从开放的输入输出设备读取数据,直到结束并哈希它。如果成功读取,则返回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()方法计算
QByteArray
byte_array;
byte_array.append("password");
QByteArray
hash_byte_array = QCryptographicHash::hash(byte_array, QCryptographicHash::Md5);
QString
md5 = hash_byte_array.toHex();
(2)通过result()方法计算
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/。
出处: 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(); }
相关文章推荐
- asp MD5加密方式使用建议
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- asp.net实现md5加密
- php 的加密函数 md5,crypt,base64_encode 等使用介绍
- PHP中MD5函数使用实例代码
- php md5下16位和32位的实现代码
- jquery插件开发之实现md5插件
- C#计算文件MD5校验的方法
- javascript客户端生成MD5值的函数代码
- c++实现MD5算法实现代码
- php验证是否是md5编码的简单代码
- Python的加密模块md5、sha、crypt使用实例
- java不可逆加密算法之md5加密算法使用示例
- Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享
- java实现md5加密示例
- Python使用MD5加密字符串示例
- RSA,AES,MD5算法在实际项目中的综合应用!!!
- Flex Base64 md5 123456后得到4QrcOUm6Wau+VuBX8g+IPg==
- Python 实现PHP内置MD5函数方法
- struts2使用MD5给pwd加密