- Qt 5.15
- Qt Core
- C++ Classes
- QCryptographicHash
- Qt 5.15.19 Reference Documentation

# 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.

- List of all members, including inherited members

Note: All functions in this class are reentrant.

## Public Types

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

## Public Functions

| 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, Algorithm method)
int | hashLength(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`.

Constant | Value | Description
--- | --- | ---
`QCryptographicHash::Md4` | `0` | Generate an MD4 hash sum
`QCryptographicHash::Md5` | `1` | Generate an MD5 hash sum
`QCryptographicHash::Sha1` | `2` | Generate an SHA-1 hash sum
`QCryptographicHash::Sha224` | `3` | Generate an SHA-224 hash sum (SHA-2). Introduced in Qt 5.0
`QCryptographicHash::Sha256` | `4` | Generate an SHA-256 hash sum (SHA-2). Introduced in Qt 5.0
`QCryptographicHash::Sha384` | `5` | Generate an SHA-384 hash sum (SHA-2). Introduced in Qt 5.0
`QCryptographicHash::Sha512` | `6` | Generate an SHA-512 hash sum (SHA-2). Introduced in Qt 5.0
`QCryptographicHash::Sha3_224` | `RealSha3_224` | Generate an SHA3-224 hash sum. Introduced in Qt 5.1
`QCryptographicHash::Sha3_256` | `RealSha3_256` | Generate an SHA3-256 hash sum. Introduced in Qt 5.1
`QCryptographicHash::Sha3_384` | `RealSha3_384` | Generate an SHA3-384 hash sum. Introduced in Qt 5.1
`QCryptographicHash::Sha3_512` | `RealSha3_512` | Generate an SHA3-512 hash sum. Introduced in Qt 5.1
`QCryptographicHash::Keccak_224` | `7` | Generate a Keccak-224 hash sum. Introduced in Qt 5.9.2
`QCryptographicHash::Keccak_256` | `8` | Generate a Keccak-256 hash sum. Introduced in Qt 5.9.2
`QCryptographicHash::Keccak_384` | `9` | Generate a Keccak-384 hash sum. Introduced in Qt 5.9.2
`QCryptographicHash::Keccak_512` | `10` | Generate a Keccak-512 hash sum. Introduced in Qt 5.9.2

## Member Function Documentation

### 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, Algorithm method)

Returns the hash of data using method.

### `[static]` int QCryptographicHash::hashLength(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().