Python 3.6+hashlibфункция
hashlib.sha3_224()
хеширование
Хеш SHA3-224 (семейство SHA-3, Keccak): 28 байт, 56 шестнадцатеричных знаков. Та же длина, что у SHA-224, но другой алгоритм.
Синтаксис
hashlib.sha3_224(data=b'', *, usedforsecurity=True)
SHA-3 устроен иначе, чем SHA-2 (губка вместо схемы Меркла — Дамгора), поэтому значения у sha3_224() и sha224() разные, а атаки удлинением сообщения у SHA-3 нет. Ловушка при сверке с чужими системами: Ethereum и часть библиотек зовут «keccak256» исходный Keccak, а не стандартный SHA3-256 — хеши не совпадут. Короткий вариант: выбирают его, когда формат прямо требует SHA3-224.
Примеры
import hashlib
h = hashlib.sha3_224(b'abc')
print(h.hexdigest()[:16]) # → e642824c3f8cf24a
print(h.digest_size, h.block_size) # → 28 144
import hashlib
a = hashlib.sha3_224(b'abc').hexdigest()
b = hashlib.sha224(b'abc').hexdigest()
print(len(a) == len(b), a == b) # → True False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности