hashlib库里update函数的奇妙之处

特别感谢张老师的《Python编程及网络安全实践》,感觉知识点满满

前提知识:

摘要值:哈希值或散列值,可以理解为加密后的值

直接上波代码

import hashlib

str1 = input("str1:")
str1 = str1.encode("UTF-8") # 在使用sha256等计算hex值时要先编码
sha256_1 = hashlib.sha256(str1)
print("十六进制的哈希摘要值为",sha256_1.hexdigest()) #要使用hexdigest()函数来获得哈希摘要的十六进制表示,否则会返回哈希对象而不是一个字符串或可打印的值 

str2 = input("str2:")
str2 = str2.encode("UTF-8")
sha256_2 = hashlib.sha256(str2)
print("十六进制的哈希摘要值为",sha256_2.hexdigest())

str3 = input("str3:")
str3 = str3.encode("UTF-8")
str4 = input("str4:")
str4 = str4.encode("UTF-8")

sha256_34 = hashlib.sha256() #创建一个 SHA-256 的哈希对象 sha256_34

sha256_34.update(str3)
sha256_34.update(str4)

print("十六进制的哈希摘要值为",sha256_34.hexdigest())

 输出的结果为

 可以看到

因为sha256_34的值是helloworld的摘要值

936a185caaa266bb9cbe981e9e05cb78cd732b0b3280eb944412bb6f8f8f07af

而不是world的摘要值

486ea46224d1bb4fb680f34f7c9ad96a8f24ec88be73ea8e5a6c65260e9cb8a7

可以得出

update函数是对输入的字符串进行拼接然后再计算摘要值,而不是覆盖原来的数据再计算摘要值

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhhalloWelt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值