hashlib模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了hashlib模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1294字,纯文字阅读大概需要2分钟。
内容图文
![hashlib模块](/upload/InfoBanner/zyjiaocheng/1046/202ea4278ec14bb6a35e075d3d4f39c1.jpg)
hashlib模块
hashlib是一个加密模块:
内置了很多算法
- MD5(*******): 不可解密的算法(2018年以前)
摘要算法:
- 摘要是从某个内容中获取的加密字符串
- 摘要一样,内容就一定一样: 保证唯一性
- 密文密码就是一个摘要
hash算法其实可以看成如下图所示的一座工厂,工厂接收你送来的原材料,经过加工返回的产品就是hash值
import hashlib md5_obj = hashlib.md5() print(type(md5_obj)) str1 = ‘1234‘# update中一定要传入bytes类型数据 md5_obj.update(str1.encode(‘utf-8‘)) # # 得到一个加密后的字符串 res = md5_obj.hexdigest() # 202cb962ac59075b964b07152d234b70print(res)
撞库破解hash算法加密
# 以上操作撞库有可能会破解真实密码 # 防止撞库问题: 加盐 import hashlib def pwd_md5(pwd): # md5_obj = hashlib.md5() # print(type(md5_obj)) str1 = pwd # ‘1234‘# update中一定要传入bytes类型数据 md5_obj.update(str1.encode(‘utf-8‘)) # 创造盐 sal = ‘坦克怎么这么帅啊!‘# 加盐 md5_obj.update(sal.encode(‘utf-8‘)) # 得到一个加密后的字符串 res = md5_obj.hexdigest() # eb1ca06cf5940e9fb6ef39100ec72c94return res user_str1 = f‘tank:1234‘ user_str2 = f‘tank:{res}‘ with open(‘user.txt‘, ‘w‘, encoding=‘utf-8‘) as f: f.write(user_str2) # 模拟用户登陆操作# 获取文件中的用户名与密码 with open(‘user.txt‘, ‘r‘, encoding=‘utf-8‘) as f: user_str = f.read() file_user, file_pwd = user_str.split(‘:‘) # 用户输入用户名与密码 username = input(‘请输入用户名:‘).strip() password = input(‘请输入密码:‘).strip() # 1234# 校验用户名与密码是否一致if username == file_user and file_pwd == pwd_md5(password): # pwd_md5(‘1234‘)print(‘登陆成功‘) else: print(‘登陆失败‘)
原文:https://www.cnblogs.com/lvguchujiu/p/11881987.html
内容总结
以上是互联网集市为您收集整理的hashlib模块全部内容,希望文章能够帮你解决hashlib模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】