文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MD5加密

2023-01-30 22:43

关注

MD5:是一种不可逆的加密算法.它是可靠的,并且安全的.在python中我们不需要手写这一套算法.

只需要引入一个叫hashlib的模块就能搞定MD5的加密工作.

 

import hashlib 

obj = hashlib.md5()
obj.update("alex".encode("utf-8")) #加密的必须是字节
miwen = obj.hexdigest()
print(miwen)    #534b44a19bf18d20b71ecc4eb77c572f

 

 

 

但是仅仅是这样仍然不够安全,因为这样的密文通过一个所谓的MD5解密工具是有可能解密成功的

这是因为撞库的问题.由于MD5的原始算法已经存在很久了.那就有些人用一些简单的排列组合来计算MD5.然后当出现

相同的MD5密文的时候就很容易反推出原来的数据是什么.所以并不是MD5可逆.而是有些别有用心的人把MD5的常见

数据已经算完并保留起来了

 

那如何应对?我们只需要佳燕就行了,在使用MD5的时候.给函数的参数传递一个byte即可.

import hashlib

obj = hashlib.md5(b"fsfdkhsgskjl125dhh")    #加盐
obj.update("alex".encode("utf-8"))  # 加密的必须是字节
miwen = obj.hexdigest() #6a89b5b541444af45a7927d42f43757d
print(miwen)

 

 

MD5的应用:

# md5使用
def jiami(content):
    obj = hashlib.md5(SALT)
    obj.update(content.encode("utf-8"))
    return obj.hexdigest()

# 注册
# username = input("请输入你的用户名:")   # alex
# password = input("请输入你的密码:")
# password = jiami(password) # c3d4fe3dce88533a8b50cf2e9387c66d
# print(password)


uname = "alex"
upwd = "c3d4fe3dce88533a8b50cf2e9387c66d"

username = input("请输入你的用户名:")
password = input("请输入你的密码:")

if uname == username and upwd == jiami(password):
    print("登录成功")
else:
    print("失败")

 

所以.以后存密码就不要存明文了,姚村密文.安全并且.这里加的盐不能改来改去.否则,整套密码就都乱了

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯