QCryptographicHash 类
QCryptographicHash 类提供了一种生成加密散列的方式。 更多...
头文件 | #include <QCryptographicHash> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
注意: 此类中所有函数均可重入。
公共类型
枚举 | 算法 { Md4, Md5, Sha1, Sha224, Sha256, …, Blake2s_256 } |
公共函数
QCryptographicHash(QCryptographicHash::Algorithm 方法) | |
(自 6.5) | QCryptographicHash(QCryptographicHash &&其他) |
~QCryptographicHash() | |
void | addData(QByteArrayView 字节) |
bool | addData(QIODevice *设备) |
(自 6.5) QCryptographicHash::Algorithm | algorithm() const |
void | reset() |
QByteArray | result() const |
(自 6.3) QByteArrayView | resultView() const |
(自 6.5) void | swap(QCryptographicHash &其他) |
(自 6.5) QCryptographicHash & | operator=(QCryptographicHash &&其他) |
静态公共成员
QByteArray | hash(QByteArrayView 数据, QCryptographicHash::Algorithm 方法) |
int | hashLength(QCryptographicHash::Algorithm 方法) |
(自 6.5) bool | supportsAlgorithm(QCryptographicHash::Algorithm 方法) |
成员类型文档
enum QCryptographicHash::algorithm
注意:在 Qt 5.9 之前的版本中,当需要生成 SHA3 散列总和时,QCryptographicHash 实际上计算了 Keccak。如果您需要与这些版本的 Qt 生成的 SHA-3 散列总和兼容,请使用 Keccak_
枚举器。或者,如果要要求源代码兼容性,请定义宏 QT_SHA3_KECCAK_COMPAT
。
常量 | 值 | 描述 |
---|---|---|
QCryptographicHash::Md4 | 0 | 生成一个 MD4 散列总和 |
QCryptographicHash::Md5 | 1 | 生成一个 MD5 散列总和 |
QCryptographicHash::Sha1 | 2 | 生成一个 SHA-1 散列总和 |
QCryptographicHash::Sha224 | 3 | 生成一个 SHA-224 散列总和(SHA-2)。在 Qt 5.0 中引入 |
QCryptographicHash::Sha256 | 4 | 生成一个 SHA-256 散列总和(SHA-2)。在 Qt 5.0 中引入 |
QCryptographicHash::Sha384 | 5 | 生成一个 SHA-384 散列总和(SHA-2)。在 Qt 5.0 中引入 |
QCryptographicHash::Sha512 | 6 | 生成一个 SHA-512 散列总和(SHA-2)。在 Qt 5.0 中引入 |
QCryptographicHash::Sha3_224 | RealSha3_224 | 生成一个 SHA3-224 散列总和。在 Qt 5.1 中引入 |
QCryptographicHash::Sha3_256 | RealSha3_256 | 生成一个 SHA3-256 散列总和。在 Qt 5.1 中引入 |
QCryptographicHash::Sha3_384 | RealSha3_384 | 生成一个 SHA3-384 散列总和。在 Qt 5.1 中引入 |
QCryptographicHash::Sha3_512 | RealSha3_512 | 生成一个 SHA3-512 散列总和。在 Qt 5.1 中引入 |
QCryptographicHash::Keccak_224 | 7 | 生成一个 Keccak-224 散列总和。在 Qt 5.9.2 中引入 |
QCryptographicHash::Keccak_256 | 8 | 生成一个 Keccak-256 散列总和。在 Qt 5.9.2 中引入 |
QCryptographicHash::Keccak_384 | 9 | 生成一个 Keccak-384 散列总和。在 Qt 5.9.2 中引入 |
QCryptographicHash::Keccak_512 | 10 | 生成一个 Keccak-512 散列总和。在 Qt 5.9.2 中引入 |
QCryptographicHash::Blake2b_160 | 15 | 生成一个 BLAKE2b-160 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2b_256 | 16 | 生成一个 BLAKE2b-256 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2b_384 | 17 | 生成一个 BLAKE2b-384 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2b_512 | 18 | 生成一个 BLAKE2b-512 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2s_128 | 19 | 生成一个 BLAKE2s-128 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2s_160 | 20 | 生成一个 BLAKE2s-160 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2s_224 | 21 | 生成一个 BLAKE2s-224 散列总和。在 Qt 6.0 中引入 |
QCryptographicHash::Blake2s_256 | 22 | 生成一个 BLAKE2s-256 散列总和。在 Qt 6.0 中引入 |
成员函数文档
[explicit]
QCryptographicHash::QCryptographicHash(QCryptographicHash::Algorithm method)
使用 method 通过数据创建加密散列的对象。
[noexcept, since 6.5]
QCryptographicHash::QCryptographicHash(QCryptographicHash &&other)
将新的 QCryptographicHash 从 other 移动构造。
注意:被转移的对象 other 被置于一个部分形成的状态,在此状态下,唯一有效的操作是毁灭和分配新的值。
此函数在 Qt 6.5 中引入。
[noexcept]
QCryptographicHash::~QCryptographicHash()
毁灭该对象。
[noexcept]
void QCryptographicHash::addData(QByteArrayView bytes)
将 bytes 中的字符添加到加密哈希中。
注意:在Qt 6.3之前的版本中,该函数接受 QByteArray,而不是 QByteArrayView。
bool QCryptographicHash::addData(QIODevice *device)
从打开的 QIODevice device 中读取数据,直到末尾并对其进行哈希处理。如果读取成功,则返回 true
。
[noexcept, since 6.5]
QCryptographicHash::Algorithm QCryptographicHash::algorithm() const
返回用于生成密码学哈希的算法。
此函数在 Qt 6.5 中引入。
[static]
QByteArray QCryptographicHash::hash(QByteArrayView data, QCryptographicHash::Algorithm method)
使用 method 返回 data 的哈希。
注意:在Qt 6.3之前的版本中,该函数接受 QByteArray,而不是 QByteArrayView。
[static]
int QCryptographicHash::hashLength(QCryptographicHash::Algorithm method)
返回所选哈希 method 的输出大小(以字节为单位)。
[noexcept]
void QCryptographicHash::reset()
重置对象。
QByteArray QCryptographicHash::result() const
返回最终的哈希值。
另请参阅resultView() 和 QByteArray::toHex。
[noexcept, since 6.3]
QByteArrayView QCryptographicHash::resultView() const
返回最终的哈希值。
注意,返回的视图仅在 QCryptographicHash 对象没有被其他方式修改的情况下保持有效。
此功能自Qt 6.3开始引入。
另请参阅result。
[static, since 6.5]
bool QCryptographicHash::supportsAlgorithm(QCryptographicHash::Algorithm method)
返回是否支持所选算法 method,并且当使用 method 时,result() 是否会返回值。
注意:当作为提供者使用时,OpenSSL 将负责提供此信息,否则,由于非OpenSSL实现没有限制,将返回 true
。如果我们无法查询 OpenSSL,则返回 false
。
此函数在 Qt 6.5 中引入。
[noexcept, since 6.5]
void QCryptographicHash::swap(QCryptographicHash &other)
交换密码哈希 other 与此密码哈希。此操作非常快速且永远不会失败。
此函数在 Qt 6.5 中引入。
[noexcept, since 6.5]
QCryptographicHash &QCryptographicHash::operator=(QCryptographicHash &&other)
将other移动赋值给当前QCryptographicHash实例。
注意:被转移的对象 other 被置于一个部分形成的状态,在此状态下,唯一有效的操作是毁灭和分配新的值。
此函数在 Qt 6.5 中引入。
© 2024 The Qt Company Ltd. 本文档中包含的贡献的文档版权属于其各自的所有者。所提供的文档是在GNU自由文档许可证版本1.3的条款下提供的,该许可证由自由软件基金会发布。Qt和相关的标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。