hashlib加密

一、hashlib的基本组成:

1.hashlib库是python3的标准库,主要用于数据的加密,以下是hashlib的方法及属性。

>>> import hashlib
>>> dir(hashlib)
['__all__', '__builtin_constructor_cache', '__builtins__', '__cached__', '__doc__', '__file__', '__get_builtin_constructor', '__loader__', '__name__', '__package__', '__spec__', '_hashlib', 'algorithms_available', 'algorithms_guaranteed', 'blake2b', 'blake2s', 'md5', 'new', 'pbkdf2_hmac', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']
2.hashlib在各种平台都支持的算法包括:

>>> hashlib.algorithms_guaranteed
{'sha3_384', 'sha3_512', 'sha224', 'blake2b', 'shake_256', 'blake2s', 'sha512', 'sha3_224', 'sha3_256', 'sha1', 'shake_128', 'sha384', 'md5', 'sha256'}

其中运用比较多的是md5算法。

3.hashlib在当前pyhton解释器支持的算法包括:

>>> hashlib.algorithms_available
{'RIPEMD160', 'ripemd160', 'sha', 'sha3_224', 'ecdsa-with-SHA1', 'SHA', 'blake2b', 'md5', 'sha256', 'SHA256', 'blake2s', 'sha3_256', 'MD5', 'SHA512', 'SHA1', 'whirlpool', 'dsaEncryption', 'DSA-SHA', 'sha3_384', 'sha3_512', 'sha224', 'shake_256', 'SHA224', 'md4', 'sha512', 'sha1', 'SHA384', 'shake_128', 'DSA', 'MD4', 'dsaWithSHA', 'sha384'}

二、hashlib主要方法:

1.hashlib.new(method,[data])方法:构建一个method加密对象,加密数据为data.

>>> m=hashlib.new('md5',b'China')
>>> m.digest()#返回二进制加密数据
b'xaeTxa5xc0&xf3x1axdax08x89x92X}x92xcb:'
>>> m.hexdigest()#返回十六进制加密数据
'ae54a5c026f31ada088992587d92cb3a'

注意:data必须为bytes类型数据。中文字的话通过encode()方法转化为bytes类型数据。

三、md5方法:

md5方法位于hashlib模块内。

>>> m=hashlib.md5()
>>> m.update(b'China')
>>> m.hexdigest()
'ae54a5c026f31ada088992587d92cb3a'

update()方法加密是叠加的,例如:m.update(b'China')与m.update(b'Chi'),m.update('na')后的结果一样。

原文地址:https://www.cnblogs.com/zhuluqing/p/8480882.html