python hashilib模块

本文介绍了如何使用Python的hashlib模块实现MD5和SHA1摘要算法,包括将任意长度的字符串转换为固定长度的十六进制字符串的方法。通过实例展示了如何分段更新待处理的大数据并获得一致的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要算法模块 :

  能够把一个字符串数据类型的变量,转换成一个定长的,密文的字符串,字符串中的每一个字符都是一个十六进制数字.

  对于同一个字符串,不管这个字符串有多长,只要是相同的字符串,无论在任何环境下,执行多少次,在任何语言中,只要使用相同的算法/相同的手段得到的结果永远都是相同的.

  字符串不相同,得到的结果一定不同

# hashlib模块提供了摘要算法,如md5,sha1
# md5和sha1调用方法完全类似,不过sha1结果是40位16进制字符串.
# 通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常为16进制的字符串)
# 摘要函数是一个单项函数,通过数据转换数据串容易,反推很难

import hashlib
# s = 'dkjlfhg'
# a = hashlib.md5()   #将算法赋值给a
# a.update(s.encode('utf-8'))#转码为utf-8,本身为bytes类型
# b = a.hexdigest()#经过两步运算得到一串32位的字符串
# print(b,type(b))

#如果待转换数据量非常大,可以分块多次调用update(),最后计算结果是一样的
s = 'akjfhalkjfhga'
a = hashlib.md5()
a.update(s[:5].encode('utf-8'))
a.update(s[5:].encode('utf-8'))
b = a.hexdigest()
print(b)
a = hashlib.md5()
a.update(s.encode('utf-8'))
x = a.hexdigest()
print(x)#两次转换结果相同

 

转载于:https://www.cnblogs.com/dong-/p/9452035.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值