blob: c780dcb00b4d4d37ddb92adcad72816bc61ad92e [file] [log] [blame]
.. hazmat::
Message Digests
===============
.. currentmodule:: cryptography.hazmat.primitives.hashes
.. class:: BaseHash(data=None)
Abstract base class that implements a common interface for all hash
algorithms that follow here.
If ``data`` is provided ``update(data)`` is called upon construction.
.. doctest::
>>> from cryptography.hazmat.primitives import hashes
>>> digest = hashes.SHA256()
>>> digest.update(b"abc")
>>> digest.update(b"123")
>>> digest.hexdigest()
'6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090'
.. method:: update(data)
:param bytes data: The bytes you wish to hash.
.. method:: copy()
:return: a new instance of this object with a copied internal state.
.. method:: digest()
:return bytes: The message digest as bytes.
.. method:: hexdigest()
:return str: The message digest as hex.
SHA-1
~~~~~
.. attention::
NIST has deprecated SHA-1 in favor of the SHA-2 variants. New applications
are strongly suggested to use SHA-2 over SHA-1.
.. class:: SHA1()
SHA-1 is a cryptographic hash function standardized by NIST. It has a
160-bit message digest.
SHA-2 Family
~~~~~~~~~~~~
.. class:: SHA224()
SHA-224 is a cryptographic hash function from the SHA-2 family and
standardized by NIST. It has a 224-bit message digest.
.. class:: SHA256()
SHA-256 is a cryptographic hash function from the SHA-2 family and
standardized by NIST. It has a 256-bit message digest.
.. class:: SHA384()
SHA-384 is a cryptographic hash function from the SHA-2 family and
standardized by NIST. It has a 384-bit message digest.
.. class:: SHA512()
SHA-512 is a cryptographic hash function from the SHA-2 family and
standardized by NIST. It has a 512-bit message digest.
RIPEMD160
~~~~~~~~~
.. class:: RIPEMD160()
RIPEMD160 is a cryptographic hash function that is part of ISO/IEC
10118-3:2004. It has a 160-bit message digest.
Whirlpool
~~~~~~~~~
.. class:: Whirlpool()
Whirlpool is a cryptographic hash function that is part of ISO/IEC
10118-3:2004. It has a 512-bit message digest.
MD5
~~~
.. warning::
MD5 is a deprecated hash algorithm that has practical known collision
attacks. You are strongly discouraged from using it.
.. class:: MD5()
MD5 is a deprecated cryptographic hash function. It has a 128-bit message
digest and has practical known collision attacks.