• hashlib 模块 摘要算法


    应用于用户登陆,对密码进行加密操作,

      #文件操作
        # hashlib 摘要算法
          #md5 算法: 是32位的16进制组成的数字字符组成的字符串
            #应用最广的摘要算法
            #效率高,相对不复杂,如果只是传统摘要不安全
          #sha 算法 :40位的16进制组成的数字字符组成的字符串
            #sha算法比md5算法要更加复杂
            #且sha n 算法越大越安全,耗时越久

    普通用法

    from hashlib
    def get_md5(s):
        md5_obj = hashlib.md5()
        md5_obj.update(s.encode("utf-8"))
        ret = md5_obj.hexdigest()
        return ret
    l1 = get_md5("alex123")
    print(l1)   #b75bd008d5fecb1f50cf026532e8ae67

    为防止非法人员恶意盗取

    加盐用法

    # def get_md5(s):
    #     md5_obj = hashlib.md5("盐".encode("utf-8"))    #盐是不变的
    #     md5_obj.update(s.encode("utf-8"))
    #     ret = md5_obj.hexdigest()
    #     return ret

    动态加盐

    # def get_md5(name,pwd):
    #     md5_obj = hashlib.md5(name.encode("utf-8"))
    #     md5_obj.update(pwd.encode("utf-8"))
    #     ret = md5_obj.hexdigest()
    #     return ret
    # l1 = get_md5("alex","alex123")
    # print(l1)
    def get_md5(name,pwd):
        md5_obj = hashlib.md5((name+pwd).encode("utf-8"))
        return md5_obj.hexdigest()
    print(get_md5("alex","alex123"))
    #判断文件的一致性校验
    # md5_obj = hashlib.md5()
    # md5_obj.update("hello,world".encode("utf-8"))
    # ret = md5_obj.hexdigest()
    # print(ret)
    
    # md5_obj = hashlib.md5()

    判断视频文件的一致性

    # import os,hashlib
    # def get_file_md5(file_path,buffer= 1024):
    #     md5_obj = hashlib.md5()
    #     file_size = os.path.getsize(file_path)
    #     with open(file_path,"rb") as f:
    #         while file_size:
    #             count = f.read(buffer)
    #             md5_obj.update(count)
    #             file_size -= len(count)
    #         return md5_obj.hexdigest()

    使用md5与 sha n系列用法一样,使用sha n 越大越安全 

  • 相关阅读:
    ruby2.2.2在msvc2010上编译
    msvc2010生成的指令序列有问题,可能跟pgo有关
    Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    正则总结
    实现点击按钮全选功能
    轮播图(省代码方法)
    js实现复制URL功能
    字符串的常用方法
    两种文件上传的实现-Ajax和form+iframe
    jquery中attr和prop的区别
  • 原文地址:https://www.cnblogs.com/yuncong/p/9600427.html
Copyright © 2020-2023  润新知