• python模块之hashlib模块


      hashlib模块:提供摘要算法

      格式:

    hashlib格式:
                obj = hashlib.算法(md5,sha....)
                obj.update(摘要内容:bytes类型)
                result = obj.hexdigest()

      具体使用的方法:

    abstract = hashlib.md5()
    abstract1 = hashlib.md5()
    abstract2 = hashlib.sha1()
    abstract.update(bytes('密文', encoding='utf-8'))
    abstract1.update(bytes('密文', encoding='utf-8'))
    abstract2.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())  # c099362aa8fc5c5d1be88e4c2c42ea62
    print(abstract1.hexdigest())  # c099362aa8fc5c5d1be88e4c2c42ea62
    print(abstract2.hexdigest())  # 058115813f2cbb11f638a736c22b3bd32a5e46dc

      从上面的例子看出摘要算法的特点:

    摘要算法特点:可用于文件的一致性验证
            1,对于相同的字符串,同一种算法摘要后的值总是相同的
            2,对于相同的字符串,不同的算法摘要后的值应该是不相同的

      加盐摘要:进一步提高密文的安全性,防止撞库!

    abstract = hashlib.md5(bytes('加盐', encoding='utf-8'))
    abstract.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())  # 17de8554897051e741525a38fc250adf

      动态加盐:使用用户名的某一部分作为加盐的对象或和盐进行拼接后加盐。

    user = input('username:')
    abstract = hashlib.md5(bytes(user, encoding='utf'))
    abstract.update(bytes('密文', encoding='utf-8'))
    print(abstract.hexdigest())
  • 相关阅读:
    XCTF EasyHook
    [GXYCTF2019]simple CPP
    [BJDCTF2020]ZJCTF,不过如此
    Open_basedir绕过
    P2240 【深基12.例1】部分背包问题
    PHP深浅拷贝
    关于_tostring[php]的另类利用
    通用Mapper常用方法
    @GetMapping、@PostMapping和@RequestMapping的区别
    IDEA 下载依赖包的问题
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8342580.html
Copyright © 2020-2023  润新知