mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
gh-136565: Improve and amend hashlib.__doc__ (#136566)
This commit is contained in:
parent
c7d24b81c3
commit
83d04a29a6
1 changed files with 10 additions and 10 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
# Licensed to PSF under a Contributor Agreement.
|
# Licensed to PSF under a Contributor Agreement.
|
||||||
#
|
#
|
||||||
|
|
||||||
__doc__ = """hashlib module - A common interface to many hash functions.
|
__doc__ = r"""hashlib module - A common interface to many hash functions.
|
||||||
|
|
||||||
new(name, data=b'', **kwargs) - returns a new hash object implementing the
|
new(name, data=b'', **kwargs) - returns a new hash object implementing the
|
||||||
given hash function; initializing the hash
|
given hash function; initializing the hash
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
than using new(name):
|
than using new(name):
|
||||||
|
|
||||||
md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(),
|
md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(),
|
||||||
sha3_224, sha3_256, sha3_384, sha3_512, shake_128, and shake_256.
|
sha3_224(), sha3_256(), sha3_384(), sha3_512(), shake_128(), and shake_256().
|
||||||
|
|
||||||
More algorithms may be available on your platform but the above are guaranteed
|
More algorithms may be available on your platform but the above are guaranteed
|
||||||
to exist. See the algorithms_guaranteed and algorithms_available attributes
|
to exist. See the algorithms_guaranteed and algorithms_available attributes
|
||||||
|
|
@ -21,8 +21,8 @@
|
||||||
NOTE: If you want the adler32 or crc32 hash functions they are available in
|
NOTE: If you want the adler32 or crc32 hash functions they are available in
|
||||||
the zlib module.
|
the zlib module.
|
||||||
|
|
||||||
Choose your hash function wisely. Some have known collision weaknesses.
|
Choose your hash function wisely. Some have known collision weaknesses,
|
||||||
sha384 and sha512 will be slow on 32 bit platforms.
|
while others may be slower depending on the CPU architecture.
|
||||||
|
|
||||||
Hash objects have these methods:
|
Hash objects have these methods:
|
||||||
- update(data): Update the hash object with the bytes in data. Repeated calls
|
- update(data): Update the hash object with the bytes in data. Repeated calls
|
||||||
|
|
@ -36,20 +36,20 @@
|
||||||
efficiently compute the digests of data that share a common
|
efficiently compute the digests of data that share a common
|
||||||
initial substring.
|
initial substring.
|
||||||
|
|
||||||
For example, to obtain the digest of the byte string 'Nobody inspects the
|
Assuming that Python has been built with MD5 support, the following computes
|
||||||
spammish repetition':
|
the MD5 digest of the byte string b'Nobody inspects the spammish repetition':
|
||||||
|
|
||||||
>>> import hashlib
|
>>> import hashlib
|
||||||
>>> m = hashlib.md5()
|
>>> m = hashlib.md5()
|
||||||
>>> m.update(b"Nobody inspects")
|
>>> m.update(b"Nobody inspects")
|
||||||
>>> m.update(b" the spammish repetition")
|
>>> m.update(b" the spammish repetition")
|
||||||
>>> m.digest()
|
>>> m.digest()
|
||||||
b'\\xbbd\\x9c\\x83\\xdd\\x1e\\xa5\\xc9\\xd9\\xde\\xc9\\xa1\\x8d\\xf0\\xff\\xe9'
|
b'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
|
||||||
|
|
||||||
More condensed:
|
More condensed:
|
||||||
|
|
||||||
>>> hashlib.sha224(b"Nobody inspects the spammish repetition").hexdigest()
|
>>> hashlib.md5(b"Nobody inspects the spammish repetition").hexdigest()
|
||||||
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
|
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -203,7 +203,7 @@ def file_digest(fileobj, digest, /, *, _bufsize=2**18):
|
||||||
*digest* must either be a hash algorithm name as a *str*, a hash
|
*digest* must either be a hash algorithm name as a *str*, a hash
|
||||||
constructor, or a callable that returns a hash object.
|
constructor, or a callable that returns a hash object.
|
||||||
"""
|
"""
|
||||||
# On Linux we could use AF_ALG sockets and sendfile() to archive zero-copy
|
# On Linux we could use AF_ALG sockets and sendfile() to achieve zero-copy
|
||||||
# hashing with hardware acceleration.
|
# hashing with hardware acceleration.
|
||||||
if isinstance(digest, str):
|
if isinstance(digest, str):
|
||||||
digestobj = new(digest)
|
digestobj = new(digest)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue