.. hazmat:: Message Digests =============== .. currentmodule:: cryptography.hazmat.primitives.hashes .. class:: Hash(algorithm) A cryptographic hash function takes an arbitrary block of data and calculates a fixed-size bit string (a digest), such that different data results (with a high probability) in different digests. This is an implementation of :class:`cryptography.hazmat.primitives.interfaces.HashContext` meant to be used with :class:`cryptography.hazmat.primitives.interfaces.HashAlgorithm` implementations to provide an incremental interface to calculating various message digests. .. doctest:: >>> from cryptography.hazmat.primitives import hashes >>> digest = hashes.Hash(hashes.SHA256()) >>> digest.update(b"abc") >>> digest.update(b"123") >>> digest.finalize() 'l\xa1=R\xcap\xc8\x83\xe0\xf0\xbb\x10\x1eBZ\x89\xe8bM\xe5\x1d\xb2\xd29%\x93\xafj\x84\x11\x80\x90' .. 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:: finalize() Finalize the current context and return the message digest as bytes. Once ``finalize`` is called this object can no longer be used. :return bytes: The message digest as bytes. 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.