python中hash的特点应用
2023-03-20 14:44:17 时间
在上篇文章中我们已经明确了,hash算法的过程是不可逆的。就是说,我们不能通过结果来推导出之前输入的内容。虽然很多小伙伴们觉得遗憾,不过根据这个特点我们可以进行一些其他适用于不可逆的操作。比如在检测和加密方面的使用就非常出色。下面就python中hash的特点应用的一些方面给大家进行分享。
1.校验两个文件是否是一个
import hashlib # 导入模块 m = hashlib.md5() # 造一个生产md5的工厂 with open(r"E: est路飞学程作业打印一千张学员海报alex.png",'rb') as f: for i in f: m.update(i) print(m.hexdigest()) import hashlib # 导入模块 m = hashlib.md5() # 造一个生产md5的工厂 with open(r"E: estaaalex.png",'rb') as f: for i in f: m.update(i) print(m.hexdigest())
2.给密码加密
import hashlib # 导入模块 password = input("请输入密码:").strip() m = hashlib.md5() # 造一个生产md5的工厂 m.update(password.encode("utf-8")) print(m.hexdigest())
拓展:Python 中基于hash的2个数据类型是dict and set , 之前说dict查询速度快,为何快? 说set天生去重,怎么做到的?其实都是利用了hash的特性。
set为何是天生去重的?
因为每存一个值到set里时, 都要先经过hash,然后通过得出的这个hash值算出应该存在set里的哪个位置,存的时候会先检查那个位置上有没有值 ,有的话就对比是否相等,如果相等,则不再存储此值。 如果不相等(即为空),则把新值存在这。
当然hash特点应用的领域还不止这些,我们今天只就检测和加密两个方面为大家进行了展开的讨论,有兴趣的小伙伴也可以看看其他的使用。
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测