Source code for anza.crypto.digest

"""SHA-256 digests (available as ``anza.digest``)."""

import hashlib
from typing import Union


[docs] def hash(data: Union[str, bytes]) -> bytes: """SHA-256 of ``data`` (a ``str`` is encoded as UTF-8). Example: >>> from anza import digest >>> digest.hash("hi")[:4] b'\\x8fCCF' """ buf = data.encode("utf-8") if isinstance(data, str) else data return hashlib.sha256(buf).digest()
[docs] def hex(data: Union[str, bytes]) -> str: """Lowercase-hex SHA-256 of ``data`` (a ``str`` is encoded as UTF-8). This is the digest of :attr:`Template.digest <anza.Template.digest>`. Example: >>> from anza import digest >>> digest.hex("hi") '8f434346648f6b96df89dda901c5176b10a6d83961dd3c1ac88b59b2dc327aa4' """ buf = data.encode("utf-8") if isinstance(data, str) else data return hashlib.sha256(buf).hexdigest()