hashlib模块:用于加密相关的操作,代替了md5模块和sha模块,主要提供了SHA1,SHA224,SHA256,SHA383,SHA512,MD5算法,在python3中已经废弃了md5和sha模块
1.哈希简介
使用标准库中的 hashlib 模块可以用来处理安全哈希算法或者消息摘要算法。
这个模块包含了符合 FIPS(美国联邦信息处理标准)的安全哈希算法,例如 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的 MD5 算法。
哈希的最常见的用法是,存储密码的哈希值而非密码本身。这时候使用哈希函数需要稳健一点,否则容易被破解。另一个常见的用法是,计算一个文件的哈希值,然后将这个文件和它的哈希值分别发送。接收到文件的人可以计算文件的哈希值,检验是否与接收到的哈希值相符——以此来检验文件是否被篡改。
import hashlib
m = hashlib.md5()
m.update(b'hello')
m.updae(b'It's me')
print(m.digest())
m.update(b'It's been a long time since last time we ...')
print(m.digest()) # 2进制格式hash
print(len(m.hexdigest())) # 16进制格式hash
'''
def digest(self, *args, **kwargs): # real signature unknown
""" Return the digest value as a string of binary data. """
pass
def hexdigest(self, *args, **kwargs): # real signature unknown
""" Return the digest value as a string of hexadecimal digits. """
pass
'''
import hashlib
# ######## md5 ########
hash = hashlib.md5()
hash.update('admin')
print(hash.hexdigest())
# ######## sha1 ########
hash = hashlib.sha1()
hash.update('admin')
print(hash.hexdigest())
# ######## sha256 ########
hash = hashlib.sha256()
hash.update('admin')
print(hash.hexdigest())
# ######## sha384 ########
hash = hashlib.sha384()
hash.update('admin')
print(hash.hexdigest())
# ######## sha512 ########
hash = hashlib.sha512()
hash.update('admin')
print(hash.hexdigest())