Python Glossary English

Python 3.6+hashlibфункция

hashlib.sha3_256()

хеширование

Хеш SHA3-256 (семейство SHA-3, Keccak): 32 байт, 64 шестнадцатеричных знаков. Та же длина, что у SHA-256, но другой алгоритм.

Синтаксис

hashlib.sha3_256(data=b'', *, usedforsecurity=True)

SHA-3 устроен иначе, чем SHA-2 (губка вместо схемы Меркла — Дамгора), поэтому значения у sha3_256() и sha256() разные, а атаки удлинением сообщения у SHA-3 нет. Ловушка при сверке с чужими системами: Ethereum и часть библиотек зовут «keccak256» исходный Keccak, а не стандартный SHA3-256 — хеши не совпадут. Это обычный выбор, если нужен именно SHA-3.

Примеры

import hashlib
h = hashlib.sha3_256(b'abc')
print(h.hexdigest()[:16])  # → 3a985da74fe225b2
print(h.digest_size, h.block_size)  # → 32 136
import hashlib
a = hashlib.sha3_256(b'abc').hexdigest()
b = hashlib.sha256(b'abc').hexdigest()
print(len(a) == len(b), a == b)  # → True False

См. также

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