| .. 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. |