SHAKE128
SHAKE128 is an extendable-output function (XOF) in the SHA-3 family, as specified in FIPS 202.
As a XOF, SHAKE128 is a generalization of a cryptographic hash function. Instead of creating a fixed-length digest (e.g. 32 bytes like SHA-2/256), it can produce outputs of any desired length.
Output bits do not depend on the output length.
The 128 in its name indicates its maximum security level (in bits), as described in Sections A.1 and A.2 of FIPS 202.
In the following example, the output is 26 bytes (208 bits) long:
>>> from Crypto.Hash import SHAKE128
>>>
>>> shake = SHAKE128.new()
>>> shake.update(b'Some data')
>>> print(shake.read(26).hex())
- class Crypto.Hash.SHAKE128.SHAKE128_XOF(data=None)
A SHAKE128 hash object. Do not instantiate directly. Use the
new()
function.- Variables:
oid (string) – ASN.1 Object ID
- copy()
Return a copy (“clone”) of the hash object.
The copy will have the same internal state as the original hash object.
- Returns:
A hash object of the same type
- read(length)
Compute the next piece of XOF output.
- Parameters:
length (integer) – the amount of bytes this method must return
- Returns:
the next piece of XOF output (of the given length)
- Return type:
byte string
- update(data)
Continue hashing of a message by consuming the next chunk of data.
- Parameters:
data (byte string/byte array/memoryview) – The next chunk of the message being hashed.
- Crypto.Hash.SHAKE128.new(data=None)
Return a fresh instance of a SHAKE128 object.
- Parameters:
data (bytes/bytearray/memoryview) – The very first chunk of the message to hash. It is equivalent to an early call to
update()
. Optional.- Return:
A
SHAKE128_XOF
object