zoukankan      html  css  js  c++  java
  • python的md5摘要(加密)与加盐

    python的hashlib库的md5摘要是不可反解的,非常安全

    摘要是单项不可逆的

    加密是可以解密的,是双向的

    haxdigest  hax是16进制,digest是摘要

    #md5加密是不可反解的
    import hashlib
    #实例化对象
    obj=hashlib.md5()      #先创建一个md5的对象
    #写入要加密的字节
    obj.update("admin".encode("utf-8"))   #对谁加密就把谁写道前面,python3中必须是字节,所以必须用.encode()
    #获取密文
    secret=obj.hexdigest()
    print(secret)
    ##############################################################
    
    import hashlib
    obj=hashlib.md5(b'12334')                #实例化md5的时候可以给传个参数,这叫加盐
    obj.update("admin".encode("utf-8"))      #是再加密的时候传入自己的一块字节,
    secret=obj.hexdigest()
    print(secret)
    ##############################################################
    
    #因为用户密码已经被加密过了,而且是加盐的,所以再用户验证的时候用字符串或者直接的加密的的字节都不能正确判断,只能用加盐的字节所判断
    
    import hashlib
    SALT = b'2erer3asdfwerxdf34sdfsdfs90'
    def md5(pwd):
        # 实例化对象
        obj = hashlib.md5(SALT)
        # 写入要加密的字节
        obj.update(pwd.encode('utf-8'))
        # 获取密文
        return obj.hexdigest()
    
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    if user == 'oldboy' and md5(pwd) == 'c5395258d82599e5f1bec3be1e4dea4a':
        print('登录成功')
    else:
        print('登录失败')
    

      

  • 相关阅读:
    work_7_Boolean和boolean,基本类型和包装类型
    work_06_服务器上传图片错误
    work_05_64未随机id生成器
    work_04_谷歌验证码工具Kaptcha
    vue.js_13_vue的搭建
    每日一java(割草机)
    work_03_常见jq问题处理
    work_02_css样式
    java 27
    java 27
  • 原文地址:https://www.cnblogs.com/zhuhaofeng/p/9567994.html
Copyright © 2011-2022 走看看