a ܅g @s@dZdZeeZeeZedZiZddlZer>> import hashlib >>> m = hashlib.md5() >>> m.update(b"Nobody inspects") >>> m.update(b" the spammish repetition") >>> m.digest() b'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9' More condensed: >>> hashlib.sha224(b"Nobody inspects the spammish repetition").hexdigest() 'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2' )md5sha1sha224sha256sha384sha512blake2bblake2ssha3_224sha3_256sha3_384sha3_512 shake_128 shake_256)newalgorithms_guaranteedalgorithms_available pbkdf2_hmacNrrc Cstrtd|dt}||}|dur2|SzD|dvr\ddl}|j|d<|d<n|dvrddl}|j|d<|d <n|d vrddl }|j |d <|d <|j |d <|d<n|dvrddl }|j |d<|d<|j|d<|d<n|dvrddl}|j|d<|j|d<nb|dvrPddl}|j|d<|j|d<|j|d<|j|d<n&|dvrvddl}|j|d<|j|d<WntyYn0||}|dur|Std|dS)Nzunsupported hash type z(in FIPS mode)>SHA1rrrr>rMD5rr>SHA256SHA224rrrrrr>SHA384rrSHA512rrrr>rrrr>r r r r r r r r >r rr r)_hashlib get_fips_mode ValueError__builtin_constructor_cacheget_sha1r_md5r_sha256rr_sha512rr_blake2rr_sha3r r r r r r ImportError) namecache constructorrr r!r"r#r$r)/usr/lib64/python3.9/hashlib.py__get_builtin_constructorTsR             r+c CsR|tvrt|Szttd|}|dd|WSttfyLt|YS0dS)NZopenssl_F)usedforsecurity)__block_openssl_constructorr+getattrrAttributeErrorr)r&fr)r)r*__get_openssl_constructors r1cKst||fi|S)znew(name, data=b'', **kwargs) - Return a new hashing object using the named algorithm; optionally initialized with data (which must be a bytes-like object). )r+r&datakwargsr)r)r*__py_newsr6cKsV|tvrt||fi|Sztj||fi|WStyPt||YS0dS)znew(name, data=b'') - Return a new hashing object using the named algorithm; optionally initialized with data (which must be a bytes-like object). N)r-r+rrrr3r)r)r* __hash_news  r7)r)scryptzcode for hash %s was not found.)r2)r2)__doc__Z__always_supportedsetrr__all__rrrr-r+r1r6r7rZ __get_hashunionopenssl_md_meth_namesr%rr8Z __func_nameglobalsrlogging exceptionr)r)r)r*sL5.