QCryptographicHash 类

QCryptographicHash 类提供了一种生成加密散列的方式。 更多...

头文件 #include <QCryptographicHash>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

注意: 此类中所有函数均可重入。

公共类型

枚举算法 { Md4, Md5, Sha1, Sha224, Sha256, …, Blake2s_256 }

公共函数

QCryptographicHash(QCryptographicHash::Algorithm 方法)
(自 6.5) QCryptographicHash(QCryptographicHash &&其他)
~QCryptographicHash()
voidaddData(QByteArrayView 字节)
booladdData(QIODevice *设备)
(自 6.5) QCryptographicHash::Algorithmalgorithm() const
voidreset()
QByteArrayresult() const
(自 6.3) QByteArrayViewresultView() const
(自 6.5) voidswap(QCryptographicHash &其他)
(自 6.5) QCryptographicHash &operator=(QCryptographicHash &&其他)

静态公共成员

QByteArrayhash(QByteArrayView 数据, QCryptographicHash::Algorithm 方法)
inthashLength(QCryptographicHash::Algorithm 方法)
(自 6.5) boolsupportsAlgorithm(QCryptographicHash::Algorithm 方法)

详细说明

QCryptographicHash 可用于生成二进制或文本数据的加密散列。

有关支持的算法列表,请参阅 QCryptographicHash::Algorithm 枚举的说明。

成员类型文档

enum QCryptographicHash::algorithm

注意:在 Qt 5.9 之前的版本中,当需要生成 SHA3 散列总和时,QCryptographicHash 实际上计算了 Keccak。如果您需要与这些版本的 Qt 生成的 SHA-3 散列总和兼容,请使用 Keccak_ 枚举器。或者,如果要要求源代码兼容性,请定义宏 QT_SHA3_KECCAK_COMPAT

常量描述
QCryptographicHash::Md40生成一个 MD4 散列总和
QCryptographicHash::Md51生成一个 MD5 散列总和
QCryptographicHash::Sha12生成一个 SHA-1 散列总和
QCryptographicHash::Sha2243生成一个 SHA-224 散列总和(SHA-2)。在 Qt 5.0 中引入
QCryptographicHash::Sha2564生成一个 SHA-256 散列总和(SHA-2)。在 Qt 5.0 中引入
QCryptographicHash::Sha3845生成一个 SHA-384 散列总和(SHA-2)。在 Qt 5.0 中引入
QCryptographicHash::Sha5126生成一个 SHA-512 散列总和(SHA-2)。在 Qt 5.0 中引入
QCryptographicHash::Sha3_224RealSha3_224生成一个 SHA3-224 散列总和。在 Qt 5.1 中引入
QCryptographicHash::Sha3_256RealSha3_256生成一个 SHA3-256 散列总和。在 Qt 5.1 中引入
QCryptographicHash::Sha3_384RealSha3_384生成一个 SHA3-384 散列总和。在 Qt 5.1 中引入
QCryptographicHash::Sha3_512RealSha3_512生成一个 SHA3-512 散列总和。在 Qt 5.1 中引入
QCryptographicHash::Keccak_2247生成一个 Keccak-224 散列总和。在 Qt 5.9.2 中引入
QCryptographicHash::Keccak_2568生成一个 Keccak-256 散列总和。在 Qt 5.9.2 中引入
QCryptographicHash::Keccak_3849生成一个 Keccak-384 散列总和。在 Qt 5.9.2 中引入
QCryptographicHash::Keccak_51210生成一个 Keccak-512 散列总和。在 Qt 5.9.2 中引入
QCryptographicHash::Blake2b_16015生成一个 BLAKE2b-160 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2b_25616生成一个 BLAKE2b-256 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2b_38417生成一个 BLAKE2b-384 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2b_51218生成一个 BLAKE2b-512 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2s_12819生成一个 BLAKE2s-128 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2s_16020生成一个 BLAKE2s-160 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2s_22421生成一个 BLAKE2s-224 散列总和。在 Qt 6.0 中引入
QCryptographicHash::Blake2s_25622生成一个 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.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。