1.简介
QCryptographicHash 是 Qt 框架中提供的一个用于计算哈希值的类。哈希值是将任意长度的输入转换成固定长度的字符串。这个类使用不同的哈希算法(例如 MD4、MD5、SHA-1、SHA-256 等)来生成哈希值,并且可以用于数据的完整性校验、密码存储、数字签名等应用场景。
QCryptographicHash 提供了以下功能:
- 支持多种哈希算法:QCryptographicHash 支持常见的哈希算法,包括 MD4、MD5、SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 等。
- 简单易用的接口:QCryptographicHash 提供了简单易用的接口来计算哈希值。只需要调用
QCryptographicHash::hash()
方法,并将待计算哈希值的数据作为参数传入即可。 - 逐块计算:QCryptographicHash 还可以逐块地计算哈希值。这对于处理大文件或流式数据非常有用。只需要使用
QCryptographicHash::addData()
方法逐渐添加数据块,并最终调用QCryptographicHash::result()
方法获取最终的哈希值。 - 重复使用:QCryptographicHash 对象可以多次使用。当计算完一个哈希值后,可以通过调用
QCryptographicHash::reset()
方法重置对象,然后继续计算新的哈希值。
QCryptographicHash::Algorithm类型如下:
2.常用方法
将第一个字符长度的数据添加到密码散列。
- void addData(const char * data, int length)
从开放的QIODevice设备读取数据,直到结束并计算出哈希值。如果成功读取,返回true。
- bool addData(QIODevice * device)
这个函数重载了addData()。
- void addData(const QByteArray & data)
重置对象。
- void reset()
获取最终的哈希值。
- QByteArray result() const
3.示例
cpp
QCryptographicHash hash(QCryptographicHash::Sha256); // 创建一个 Sha256 算法的对象
hash.addData("Hello world"); // 添加待计算哈希值的数据
QByteArray result = hash.result(); // 获取最终的哈希值
QString hexResult = result.toHex(); // 转换成十六进制格式的字符串