hashlib模块
一、hashlib是一个加密模块#
- MD5:不可解密的算法(2018年以前)
- sha_256(了解)
1、摘要算法#
- 摘要是从某个内容中获取的加密字符串
- 摘要一样,内容就一定一样: 保证唯一性
- 密码的密钥就是一个摘要
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()
print(res)
81dc9bdb52d04dc20036dbd8313ed055
2、加盐#
以上操作撞库有可能会破解真实密码
防止撞库问题:加盐
import hashlib
def pwd_hash(pwd):
md5_obj = hashlib.md5()
str1 = str(pwd)
md5_obj.update(str1.encode('UTF-8'))
# 创造盐
salting = '猜猜看呢?'
# 加盐
md5_obj.update(salting.encode('UTF-8'))
# 得到一个加密后的字符串
res = md5_obj.hexdigest()
return res
print(pwd_hash(1234))
3、模拟用户登录#
利用md5校验
# 获取文件中的用户名与密码
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('登陆失败')
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容