python实现MD5加密
import hashlib
def generate_md5(str_data):
byte_data = str_data.encode('utf-8') # 由于update方法接收的是字节,所以对字符串进行转码
md5 = hashlib.md5() # 实例化对象
md5.update(byte_data) # 更新hash对象
md5_value = md5.hexdigest() # 获得16进制str类型的消息摘要,注意mad5.digest()返回bytes格式的消息摘要
return md5_value
简化
import hashlib
def generate_md5(str_data):
md5 = hashlib.md5() # 实例化对象
md5.update(str_data.encode('utf-8'))
md5_value = md5.hexdigest() # 更新hash对象
return md5_value
注意点
hash.update(arg)
更新hash对象。连续的调用该方法相当于连续的追加更新。例如m.update(a); m.update(b)相当于m.update(a+b)。注意,当数据规模较大的时候,Python的GIL在此时会解锁,用于提高计算速度。
一定要理解update()的作用,由于消息摘要是只针对当前状态产生的,所以每一次update后,再次计算hexdigest()的值都会不一样。
hash.digest()
返回bytes格式的消息摘要
hash.hexdigest()
与digest方法类似,不过返回的是两倍长度的字符串对象,所有的字符都是十六进制的数字。通常用于邮件传输或非二进制环境中。通常我们比较摘要时,比较的就是这个值!
hash.copy()
返回一个hash对象的拷贝
本文来自博客园,作者:NFTO,转载请注明原文链接:https://www.cnblogs.com/NFTO21/p/14778768.html

浙公网安备 33010602011771号