Python Glossary English

все 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Сообщить о неточности