55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
# hlib.py
|
|
# NOT A PYTHON MODULE - DO NOT ATTEMPT TO RUN
|
|
|
|
# hlib.py
|
|
>>> import hashlib
|
|
>>> hashlib.algorithms_available
|
|
{'mdc2', 'sha224', 'whirlpool', 'sha1', 'sha3_512', 'sha512_256',
|
|
'sha256', 'md4', 'sha384', 'blake2s', 'sha3_224', 'sha3_384',
|
|
'shake_256', 'blake2b', 'ripemd160', 'sha512', 'md5-sha1',
|
|
'shake_128', 'sha3_256', 'sha512_224', 'md5', 'sm3'}
|
|
>>> hashlib.algorithms_guaranteed
|
|
{'blake2s', 'md5', 'sha224', 'sha3_512', 'shake_256', 'sha3_256',
|
|
'shake_128', 'sha256', 'sha1', 'sha512', 'blake2b', 'sha3_384',
|
|
'sha384', 'sha3_224'}
|
|
|
|
>>> h = hashlib.blake2b()
|
|
>>> h.update(b'Hash me')
|
|
>>> h.update(b' now!')
|
|
>>> h.hexdigest()
|
|
'56441b566db9aafcf8cdad3a4729fa4b2bfaab0ada36155ece29f52ff70e1e9d'
|
|
'7f54cacfe44bc97c7e904cf79944357d023877929430bc58eb2dae168e73cedf'
|
|
>>> h.digest()
|
|
b'VD\x1bVm\xb9\xaa\xfc\xf8\xcd\xad:G)\xfaK+\xfa\xab\n\xda6\x15^'
|
|
b'\xce)\xf5/\xf7\x0e\x1e\x9d\x7fT\xca\xcf\xe4K\xc9|~\x90L\xf7'
|
|
b'\x99D5}\x028w\x92\x940\xbcX\xeb-\xae\x16\x8es\xce\xdf'
|
|
>>> h.block_size
|
|
128
|
|
>>> h.digest_size
|
|
64
|
|
>>> h.name
|
|
'blake2b'
|
|
|
|
>>> hashlib.sha256(b'Hash me now!').hexdigest()
|
|
'10d561fa94a89a25ea0c7aa47708bdb353bbb062a17820292cd905a3a60d6783'
|
|
|
|
|
|
>>> import hashlib
|
|
>>> h1 = hashlib.blake2b(b'Important data', digest_size=16,
|
|
... person=b'part-1')
|
|
>>> h2 = hashlib.blake2b(b'Important data', digest_size=16,
|
|
... person=b'part-2')
|
|
>>> h3 = hashlib.blake2b(b'Important data', digest_size=16)
|
|
>>> h1.hexdigest()
|
|
'c06b9af95d5aa6307e7e3fd025a15646'
|
|
>>> h2.hexdigest()
|
|
'9cb03be8f3114d0f06bddaedce2079c4'
|
|
>>> h3.hexdigest()
|
|
'7d35308ca3b042b5184728d2b1283d0d'
|
|
|
|
>>> import os
|
|
>>> dk = hashlib.pbkdf2_hmac('sha256', b'Password123',
|
|
... salt=os.urandom(16), iterations=100000)
|
|
>>> dk.hex()
|
|
'f8715c37906df067466ce84973e6e52a955be025a59c9100d9183c4cbec27a9e'
|