Python ---- md5的简单应用

Python ——md5加密

md5加密不是可逆转的 ---- 不可解密

md5普通加密

  • 记住--填写加密的字符串要编码,不然会报错

  • 字符串通过Unicode编码来存储的,所以在加密之前,要对字符串进行编码成二进制的

```
    但是这种普通的md5加密,还是能通过撞库来破解的
```
import hashlib
​
obj = hashlib.md5()
obj.update('123'.encode('utf-8'))
resilt = obj.hexdigest()
print(resilt) #202cb962ac59075b964b07152d234b70

加盐:

  • 为了防止撞库来破解md5的加密,所以要加盐,来提高撞库的难度

  • 加盐之后一般很难破解

    import hashlib
    #加盐的时候随便加字符串,
    obj = hashlib.md5('qewdwdw'.encode('utf-8'))
    obj.update('123'.encode('utf-8'))
    resilt = obj.hexdigest()
    print(resilt) #202cb962ac59075b964b07152d234b70

    2、md5的简单应用

    '''
        实现用户的注册登录功能
        但是用户的密码要进行md5加密
        禁止密码明文出现
    '''
    import hashlib
    ​
    USER_PWS = []
    ​
    #加密函数
    def encry(psw):
        obj = hashlib.md5('weweeecdfef'.encode('utf-8')) #加盐
        obj.update(psw.encode('utf-8'))
        result = obj.hexdigest()
        return result
    ​
    #注册
    def regis():
        print('{:*^30}'.format('注册界面'))
        while True:
           user = input('请输入用户名:')
           if user == 'N':
               return
           paw = input('请输出密码:')
           user_pws = {'username':user,'pasword':encry(paw)}
           USER_PWS.append(user_pws)
    ​
    #登录
    def login():
        print('{:*^30}'.format('登录界面'))
        user = input('请输入用户名:')
        if user == 'N':
            return
        pasw = input('请输出密码:')
    ​
        #for循环比较用户名和密码
        for i in USER_PWS:
            if user == i['username'] and encry(pasw) == i['pasword']:
                return True
    ​
    regis()
    if login():
        print('{:=^30}'.format('登录成功'))
    else:
        print('{:=^30}'.format('登录失败'))

    运行结果截图:

     

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒险岛_0_

您的打赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值