QCryptographicHash Class

The QCryptographicHash class provides a way to generate cryptographic hashes. More...

Header: #include <QCryptographicHash>
qmake: QT += core
Since: Qt 4.3

This class was introduced in Qt 4.3.

Note: All functions in this class are reentrant.

Public Types

enum Algorithm { Md4, Md5, Sha1, Sha224, Sha256, …, Keccak_512 }

Public Functions

QCryptographicHash(QCryptographicHash::Algorithm method)
~QCryptographicHash()
void addData(const char *data, int length)
void addData(const QByteArray &data)
bool addData(QIODevice *device)
void reset()
QByteArray result() const

Static Public Members

QByteArray hash(const QByteArray &data, QCryptographicHash::Algorithm method)
int hashLength(QCryptographicHash::Algorithm method)

Detailed Description

QCryptographicHash can be used to generate cryptographic hashes of binary or text data.

Refer to the documentation of the QCryptographicHash::Algorithm enum for a list of the supported algorithms.

Member Type Documentation

enum QCryptographicHash::Algorithm

Note: In Qt versions before 5.9, when asked to generate a SHA3 hash sum, QCryptographicHash actually calculated Keccak. If you need compatibility with SHA-3 hashes produced by those versions of Qt, use the Keccak_ enumerators. Alternatively, if source compatibility is required, define the macro QT_SHA3_KECCAK_COMPAT.

ConstantValueDescription
QCryptographicHash::Md40Generate an MD4 hash sum
QCryptographicHash::Md51Generate an MD5 hash sum
QCryptographicHash::Sha12Generate an SHA-1 hash sum
QCryptographicHash::Sha2243Generate an SHA-224 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha2564Generate an SHA-256 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha3845Generate an SHA-384 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha5126Generate an SHA-512 hash sum (SHA-2). Introduced in Qt 5.0
QCryptographicHash::Sha3_224RealSha3_224Generate an SHA3-224 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_256RealSha3_256Generate an SHA3-256 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_384RealSha3_384Generate an SHA3-384 hash sum. Introduced in Qt 5.1
QCryptographicHash::Sha3_512RealSha3_512Generate an SHA3-512 hash sum. Introduced in Qt 5.1
QCryptographicHash::Keccak_2247Generate a Keccak-224 hash sum. Introduced in Qt 5.9.2
QCryptographicHash::Keccak_2568Generate a Keccak-256 hash sum. Introduced in Qt 5.9.2
QCryptographicHash::Keccak_3849Generate a Keccak-384 hash sum. Introduced in Qt 5.9.2
QCryptographicHash::Keccak_51210Generate a Keccak-512 hash sum. Introduced in Qt 5.9.2

Member Function Documentation

QCryptographicHash::QCryptographicHash(QCryptographicHash::Algorithm method)

Constructs an object that can be used to create a cryptographic hash from data using method.

QCryptographicHash::~QCryptographicHash()

Destroys the object.

void QCryptographicHash::addData(const char *data, int length)

Adds the first length chars of data to the cryptographic hash.

void QCryptographicHash::addData(const QByteArray &data)

This function overloads addData().

bool QCryptographicHash::addData(QIODevice *device)

Reads the data from the open QIODevice device until it ends and hashes it. Returns true if reading was successful.

This function was introduced in Qt 5.0.

[static] QByteArray QCryptographicHash::hash(const QByteArray &data, QCryptographicHash::Algorithm method)

Returns the hash of data using method.

[static] int QCryptographicHash::hashLength(QCryptographicHash::Algorithm method)

Returns the size of the output of the selected hash method in bytes.

This function was introduced in Qt 5.12.

void QCryptographicHash::reset()

Resets the object.

QByteArray QCryptographicHash::result() const

Returns the final hash value.

See also QByteArray::toHex().

© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.