Python Glossary English

Python 3.6+hashlibфункция

hashlib.shake_128()

хеширование

Хеш SHAKE128 из семейства SHA-3 с выходом произвольной длины: длину в байтах указывают при вызове digest(n) и hexdigest(n).

Синтаксис

hashlib.shake_128(data=b'', *, usedforsecurity=True).hexdigest(length)

hexdigest() без аргумента падает с TypeError — длина обязательна, и считается она в байтах, а не в знаках: hexdigest(8) даёт 16 шестнадцатеричных знаков. Короткий выход — префикс длинного, так что hexdigest(8) совпадает с началом hexdigest(16). Стойкость ограничена 128 битами, сколько бы байт ни запросить; нужно больше — shake_256().

Примеры

import hashlib
h = hashlib.shake_128(b'abc')
print(h.hexdigest(8))  # → 5881092dd818bf5c
print(h.hexdigest(16)[:16])  # → 5881092dd818bf5c — короткий выход — префикс
# Python 3.9+
import hashlib
try:
    hashlib.shake_128(b'abc').hexdigest()
except TypeError as e:
    print(e)  # → hexdigest() missing required argument 'length' (pos 1)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности