python 使用MD5

MD5

MD5 是消息摘要算法(Message Digest Algorithm)的一种,它接受一段信息(输入)并输出一个固定长度的哈希值(通常是128位),这个字符串是输入数据的唯一标识。如果输入数据发生改变,那么生成的MD5值也会不同。

起因:客户端读取礼物资源需要计算MD5,开发又不愿意协助,dddd 。 于是自己研究了下, 根据礼物资源(zip文件)进行计算

基于字符串的计算

import hashlib 

str = "abdc"
hash_md5 = hashlib.md5()

# 字符串转换成字节
hash_md5.update(str.encode())
# 获取16进制哈希值
hex_dig = hash_md5.hexdigest()
print(f"Md5 是: {hex_dig}")

下面是基于zip文件的计算

import hashlib 

def calculate_md5(file_path):
	# 创建一个 md5 hash对象
	hash_md5 = hashlib.md5()
	# 打开文件, 并分块读取内容到hash对象中
	with open(file_path, "rb") as file:
		# iter 创建一个迭代器对象  file.read(4096) 从file对象中读取最多4096个字节
		# iter()的第二个参数b""是一个哨兵值(sentinel value)。当file.read(4096)返回这个值时,迭代将停止。
		for chunk in iter(lambda: file.read(4096), b""):
			# update方法 向hash对象中添加数据
			hash_md5.update(chunk)
	
	# 获取16进制 哈希值
	md5_value = hash_md5.hexdigest()
	return md5_value
zip_file = 'xx.zip'
md5_zip = calculate_md5(zip_file)
print(f"生成的 MD5 是: {md5_zip}")
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值