hashlib模块(常用于加密)

hashlib模块(常用于加密)

  • 包含很多的加密算法,MD5,sha系列

  • 用途:

    • 密码加密,不能以明文的形式存储密码,要以密文的形式
    • 文件的校验
  • 用法:

    • 将bytes类型的字节转换成固定长度的16进制数字组成的字符串
    • 不同的bytes类型利用相同的算法(MD5)转化成的结果一定不同
    • 相同的bytes类型利用相同的算法(MD5)转化成的结果一定相同
    • hashilb算法是不可逆(MD5被中国的王晓云破解了)
  • MD5加密

    s1='dfghjkl;fghjklfghjJJJ哈哈哈'
    import hashlib
    ret=hashlib.md5()
    ret.update(s1.encode('utf-8'))
    print(ret.hexdigest())
    
  • 加盐(目的保证数据安全)(动态加盐就是把加盐的字符串改成动态的)

    import hashlib
    
    def inner(f):
        s1=hashlib.md5('baobei'.encode('utf-8'))   #加盐
        s1.update(f.encode('utf-8'))
        return s1.hexdigest()
    
    def Reg():
        username=input('你输入注册姓名:')
        password=input('你输入注册密码:')
        password=inner(password)
        with open('用户信息.txt',encoding='utf-8',mode='a')as f1:
            f1.write(f'{username}|{password}\n')
        return password
    st=Reg()
    
  • sha系列(金融类、安全类要求用它)(用法和md5一样)

    • 随之sha系列数字越高 ,加密越复杂,越不易破解、但是耗时越长

    • s1='dfghjkl;fghjklfghjJJJ哈哈哈'
      import hashlib
      ret=hashlib.sha3_256()
      ret.update(s1.encode('utf-8'))
      print(ret.hexdigest())
      
  • 文件的校验

    • 服务端会有一个md5码,客户端也有一个md5码,当服务端和客户端MD5码一样是说明文件一样

posted @ 2021-06-04 19:02  刘家小仙女  阅读(63)  评论(0编辑  收藏  举报