Python 3.6+hashlibфункция
hashlib.blake2b()
хеширование
Хеш BLAKE2b: до 64 байт выхода, быстрее SHA-2 на 64-битных процессорах. Умеет хешировать с ключом, солью и заданной длиной без отдельного hmac.
Синтаксис
hashlib.blake2b(data=b'', *, digest_size=64, key=b'', salt=b'', person=b'')
digest_size входит в параметры алгоритма, поэтому blake2b(digest_size=16) — не начало 64-байтного хеша, а другое значение; обрезать длинный хеш вместо указания digest_size нельзя. С key=b'...' получается готовый код проверки подлинности, по свойствам равный HMAC, но быстрее. Все параметры, кроме data, передаются только по имени.
Примеры
import hashlib
print(hashlib.blake2b(b'abc').hexdigest()[:16]) # → ba80a53f981c4d0d
print(hashlib.blake2b(b'abc', digest_size=16).hexdigest()) # → cf4ab791c62b8d2b2109c90275287816
import hashlib
tag = hashlib.blake2b(b'abc', key=b'secret', digest_size=16)
print(tag.hexdigest()) # → b728f0c8cb10089e9c7b3549c0cdea97
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности