ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

python应用之内置hashlib库的哈希算法介绍

python应用之内置hashlib库的哈希算法介绍 它是一个属于特定范畴的内置模块, 此模块提供了诸如 SHA1 以及 MD5 等多种哈希算法, 这些算法具备特定特性: 能够接受源于任意长度的字节数据当作入参进 行处理, 之后输出一个处于固定长度状态的“哈希值”, 而这个“哈希值”通常是被用于校验数据完整性方面的, 并且该算法拥有不可逆的属性即无法凭借计算得出的哈希值反向计算出原始数据。使用若要运用这个模块, 直接将其导入就行。接着借助new这个方法或者还有其他方法去创建出一个哈希对象, 凭借调用该对象的特定方法来给予需要进行哈希处理的数据此一种方法支援以分批的形式提供数据, 最终经由调用另一个特定方法来取得呈现为十六进制格式的哈希值字符串, 又或者借助别的方法去获取字节串。常用方法介绍把md5, sha1逐一分解, 自成一体, 独立呈现, 单独罗列, 独自展示, () 分别阐明, 另外各自表述全文完毕。示例使用 SHA-256 算法得到哈希值import hashlib #字符串 message Hello, world! # 创建一个SHA256对象 hash_ins hashlib.sha256() #new方法和sha256方法类似大家都可使用 #hash_object hashlib.new(sha256) # 提供字节数据 hash_ins.update(message.encode()) # 获取散列值的十六进制表示 print(fSHA-256 哈希值: {hash_ins.hexdigest()})结果SHA-256 哈希值: edd3示例校验文件的完整性。定义一个文件借由open函数去打开文件对象, 借助read函数等获取文件内容, 凭借方法算出全部文件内容的哈希值。file config.txt #文件内容随意填充 with open(file,rb) as f: hash_ins hashlib.sha256 () while True: #每次读取100字节 content f.read(100) if content: hash_ins.update(content) else: #当文件读取完毕后打印最后的哈希值 print(hash_ins.hexdigest()) break执行后结果2b20在我们把文件内容作出更改一个字符的操作之后, 我们再次去执行, 结果呈现为如下这般。b1d5由此可以判定文件内容已被更新达到校验文件完整性的目的。一起来将此作为激励: 出自东汉时期班固所著的《汉书·枚乘传》当中的话语, 其内容为, 泰山之上的水滴能够穿透石头, 细弱的井绳可以磨断井阑。水并非石之钻, 绳索并非木之锯, 然而却是日渐侵蚀让它们变成这样的结果了。-----指水滴不断地滴可以滴穿石头-----比喻坚持不懈集细微的力量也能成就难能的功劳。----感谢读者的阅读和学习点个赞和关注吧谢谢大家。
返回列表