все Python 3hashlibфункция
hashlib.new()
хеширование
Универсальный конструктор хеш-объекта по имени алгоритма строкой: hashlib.new('sha256') — то же, что hashlib.sha256().
Синтаксис
hashlib.new(name, data=b'', *, usedforsecurity=True)
Нужен, когда алгоритм приходит из настроек или аргумента командной строки; если имя известно заранее, именной конструктор быстрее и надёжнее. Имя не чувствительно к регистру ('SHA256' тоже работает), а неизвестное даёт ValueError (текст сообщения зависит от версии: в 3.15 — «unsupported hash algorithm»). Набор имён зависит от сборки OpenSSL: всегда есть только hashlib.algorithms_guaranteed, а algorithms_available на разных машинах разный — алгоритм, найденный там, на сервере может отсутствовать.
Примеры
import hashlib
h = hashlib.new('SHA256', b'abc')
print(h.name) # → sha256
print(h.hexdigest()[:16]) # → ba7816bf8f01cfea
import hashlib
try:
hashlib.new('sha257')
except ValueError as e:
print(e) # → sha257 — «unsupported hash type», с 3.15 «unsupported hash algorithm»
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности