zoukankan      html  css  js  c++  java
  • day32 Pyhton hashlib模块 总结异常处理

    一.当用明文密码进行信息存储的时候,会导致密码的泄露,如何解决问题

    通过导入hashlib模块,利用里面存在的算法对字符串进行加密计算得到一串密文的结果

    1.这个过程不可逆

    2.对于同一个字符串,同一种算法 计算的结果永远是相同的

    3.对于不同的字符串,计算的结果总是不同的

    import hashlib
    # hashlib.md5  # 最通用最快捷相对简单
    # hashlib.sha1 # 已经开始被大家广泛应用
    md5_obj = hashlib.md5()
    md5_obj.update('alex3714'.encode('utf-8'))
    ret = md5_obj.hexdigest()
    print(ret)#aee949757a2e698417463d47acac93df

    通过input输入pwd,通过md5算法进行加密

    pwd = input('>>>')
    md5_obj = hashlib.md5()
    md5_obj.update(pwd.encode('utf-8'))
    ret = md5_obj.hexdigest()
    print(ret)
    # 登陆 作业
    # 注册的时候,用户名|密文密码 记录到文件里
    # 登陆的时候,密码用同样的方式转成密文
    # 和文件中的进行比对
    # 确认一致之后 登陆成功!

    通过撞库可以到上面的比较简单的密码

    如何使密码更复杂

    通过更复杂的密码
    对于程序员来说:通过加盐让你的密码更加安全

    # 加固定的盐
    # md5_obj = hashlib.md5('任意的字符串'.encode('utf-8'))
    # md5_obj.update('123456'.encode('utf-8'))
    # ret = md5_obj.hexdigest()
    # print(ret)

    通过猜密码还是可能猜出加了固定盐的密码
    通过动态加盐-是最安全的存储密码的方式

    # md5_obj = hashlib.md5(alex.encode('utf-8'))
    # md5_obj.update(pwd.encode('utf-8'))
    # ret = md5_obj.hexdigest()
    # print(ret)
    # md5_obj = hashlib.sha1('alex'.encode('utf-8'))
    # md5_obj.update('pwd'.encode('utf-8'))
    # ret = md5_obj.hexdigest()
    # print(ret)

    hashlib模块

    import hashlib
    # with open('file','rb') as f :
    #     content = f.read()
    # md5_obj = hashlib.md5()
    # md5_obj.update(content)
    # print(md5_obj.hexdigest())
    #
    # with open('file1','rb') as f :
    #     content = f.read()
    # md5_obj = hashlib.md5()
    # md5_obj.update(content)
    # print(md5_obj.hexdigest())
    #下面两个函数结果相等
    # md5_obj = hashlib.md5()
    # md5_obj.update('hello,world'.encode('utf-8'))
    # print(md5_obj.hexdigest())
    #
    #
    # md5_obj = hashlib.md5()
    # md5_obj.update('hello,'.encode('utf-8'))
    # md5_obj.update('world'.encode('utf-8'))
    # print(md5_obj.hexdigest())
    # 文件非常大 大到4g的文件
    
    # def md5_file():
    #     md5_obj = hashlib.md5()
    #     with open('file','rb') as f :
    #         for line in f:
    #             md5_obj.update(line)
    #     print(md5_obj.hexdigest())
    #
    # md5_file()
  • 相关阅读:
    python数据分析与展示
    人生苦短,我学python。
    数学
    解决git for windows 和 vim for windows 的 vim 显示中文乱码的问题
    解决win7连接IPsec报错789和809错误
    python安装pandas库
    vim配置文件
    0x03-数据和C
    Ubutun安装问题记录
    Django-rest-framework --- 三大认证
  • 原文地址:https://www.cnblogs.com/pythonz/p/10035255.html
Copyright © 2011-2022 走看看