本文介绍使用Python内置哈希库对字符串进行MD5加密的方法,MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。128位长度。目前MD5是一种不可逆算法。 它对应任何字符串都可以加密成一段唯一的MD5 hash值,通过比hash值确定是否为相同的字符串。参考:Python的md5和sha1加密、Python MD5加密
import hashlib # python内置的hash库
def str2md5(str):
'''使用MD5对字符串进行加密
Args:
str (str): 需要加密的字符串
Returns:
[str]: 32位字符串
'''
m = hashlib.md5() # 创建md5对象
str_en = str.encode(encoding='utf-8') # str必须先encode
m.update(str_en) # 传入字符串并加密
str_md5 = m.hexdigest() # 将MD5 hash值转换为16进制数字字符串
return str_md5
MD5不仅仅是上面这个例子这样用来处理字符串,还有更广泛的用途:
- 加密网站注册用户的密码。 (但去年的各大网站密码泄漏事件确实让人蛋疼……)
- 网站用户上传图片 / 文件后,计算出MD5值作为文件名。(MD5可以保证唯一性)
- key-value数据库中使用MD5值作为key。
- 比较两个文件是否相同。(大家在下载一些资源的时候,就会发现网站提供了MD5值,就是用来检测文件是否被篡改)
- ……