hashlib

Posted daviddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashlib相关的知识,希望对你有一定的参考价值。

hashlib

1,定义

  • hashlib:摘要算法/加密算法/哈希算法/散列算法

  • 定义:通过一个函数,把任意长度的数据按照一定规则转换为一个固定的长度的数据 串,通常用16进制的字符串表示

  • 特征要点:

    • bytes数据类型→通过hashlib算法→固定长度的字符串
    • 不同的bytes类型数据转化成的结果一定不同
    • 相同的bytes类型数据转化的结果一定相同
    • 此转化过程不可逆
  • import hashlib
    
    def file_check(file_path):
        with open(file_path,mode=‘rb‘) as f1:
            sha256 = hashlib.md5()
            while 1:
                content = f1.read(1024)
                if content:
                    sha256.update(content)
                else:
                    return sha256.hexdigest()
    print(file_check(‘python-3.6.6-amd64.exe‘))
    
    # f = open(r"F:s24day17python-3.6.6-amd64.exe","rb")
    # import hashlib
    # md5 = hashlib.md5()
    # while True:
    #     msg = f.read(1024)
    #     if msg:
    #         md5.update(msg)
    #     else:
    #         print(md5.hexdigest())
    #         break
    

普通加密:MD5

  • 加密的内容

  • 将加密的内容转换成字节

  • MD5普通加密,传闻已被破解
    import hashlib
    md5 = hashlib.md5()								##初始化
    md5.update("david".encode(‘utf-8‘))				##加密
    print(md5.hexdigest())							##合成
    print(len("172522ec1028ab781d9dfd17eaca4427"))
    
  • #/sha1()加密
    md5 = hashlib.sha1()
    md5.update("david".encode(‘utf-8‘))
    print(md5.hexdigest())
    print(len("aa743a0aaec8f7d7a1f01442503957f4d7a2d634"))
    
  • # /sha256()高级加密
    # md5 = hashlib.sha256()
    # md5.update("david".encode(‘utf-8‘))
    # print(md5.hexdigest())
    

加盐加密

1,固定的盐

  • md5 = hashlib.md5("hello world".encode(‘utf-8‘))
    md5.update("david".encode(‘utf-8‘))
    print(md5.hexdigest())
    

2,动态的盐

  • user = input(‘username>>‘)
    pwd = input(‘password>>‘)
    md5 = hashlib.md5(user.encode(‘ust-8‘))
    md5.update(pwd.encode(‘utf-8‘))
    print(md5.hexdigest())
    

文件的一次性校验

  • 依据hashlib的特征,hashlib也被用来验证文件一致性的重要工具

  • 同一个bytes数据用同样的加密方式转化程度结果一定相同,如果不同,加密方式转化程度结果一定是不同的

    • 文件较小(f.read)

    • def func(file):
          with open(file,mode=‘rb‘) as f1:
              ret = hashlib.md5()
              ret.update(f1.read())
              return ret.hexdigest()
      
      print(func(‘hashlib_file1‘))
      
    • ###校验pycharm的一次性校验
      # f = open("./python-3.6.6-amd64.exe","rb")
      # import hashlib
      # md5 = hashlib.md5()
      # while True:
      #     msg = f.read(1024)
      #     if msg:
      #         md5.update(msg)
      #     else:
      #         print(md5.hexdigest())
      #         break
      

以上是关于hashlib的主要内容,如果未能解决你的问题,请参考以下文章

Python 生成哈希hash--hashlib模块

模块 hashlib模块

hash模块 hashlib 和hmac

Python中hashlib模块

python3使用hashlib进行加密

hashlib库:Python的加密算法实践