1、hashlib介绍
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。
2、使用hashlib库进行md5加密
import hashlib
# 待加密信息
str = 'this is a test.'
# 创建md5对象
md5 = hashlib.md5()
# 此处必须encode
# 若写法为m.update(str)
# 报错为:Unicode-objects must be encoded before hashing,因为python3里默认的str是unicode
# 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes
b = str.encode(encoding='utf-8')
md5.update(b)
str_md5 = md5.hexdigest()
print('MD5加密前为 :' + str)
print('MD5加密后为 :' + str_md5)
str = '我的dsfsd'
str_md5 = hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()
# 对英文加密,可以使用b' '前缀。
# str_md5 = hashlib.md5(b'this is a md5 test.').hexdigest()
print('MD5加密前为 :' + str)
print('MD5加密后为 :' + str_md5)