前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MD5加密

MD5加密

作者头像
py3study
发布2020-01-19 09:35:40
1.7K0
发布2020-01-19 09:35:40
举报
文章被收录于专栏:python3

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

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

代码语言:javascript
复制
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即可.

代码语言:javascript
复制
import hashlib

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

MD5的应用:

代码语言:javascript
复制
# 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("失败")

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档