• hashlib 模块


    hashlib 模块 

    ""
    hash lib
    hash是一种算法 是将一个任意长的数据 根据计算 得到一个固定长度特征码
    特征: 不同输入 可能会有相同的结果 几率特别小
    相同的输入 必然得到相同结果
    由于散列(特征)的性质 从原理来看是不可能 反解

    用来 验证 两个输入的数据是否一致
    使用场景
    1.密码验证
    123321 jahsajshajhsjahjas

    client 加密后结果 server 拿到加密后

    2.验证数据是否被篡改 比如游戏安装包 有没有被改过


    为了防止别人撞库成功 可用提升密码的复杂度 其次可以为密码加盐 (加点内容进去)
    """


    import hashlib

    m = hashlib.md5("aaa".encode("utf-8"))
    print(len(m.hexdigest()))

    # 撞库破解的原理 有人事先 把常见的 明文和密文的对应关系 存到了数据库中
    # 运气好就能查询到
    pwds = {"aaa":"47bce5c74f589f4867dbd57e9ca9f808"}


    h1 = hashlib.sha512("123".encode("utf-8"))
    h2 = hashlib.sha3_512("123".encode("utf-8"))

    # print(len(h.hexdigest()))
    print(h1.hexdigest())
    print(h2.hexdigest())

    # 2b70683ef3fa64572aa50775acc84855

    # 加盐
    m = hashlib.md5("321".encode("utf-8"))
    #加
    m.update("abcdefplkjoujhh".encode("utf-8"))

    print(m.hexdigest())

    import hmac
    # 没啥区别 只是在创建的时候必须加盐
    h = hmac.new("abcdefjjjj".encode("utf-8"))

    h.update("123".encode("utf-8"))

    print(h.hexdigest())
  • 相关阅读:
    工作计划
    bzoj3626:[LNOI2014]LCA
    bzoj3631:[JLOI2014]松鼠的新家
    bzoj3573: [Hnoi2014]米特运输
    bzoj4027,[HEOI2015]兔子与樱花
    bzoj3624,[Apio2008]免费道路
    bzoj2208连通数
    tyvj1153/洛谷P1262间谍网络
    Application server libraries not found && IntelliJ IDEA && tomcat
    debian9安装java8
  • 原文地址:https://www.cnblogs.com/frank007/p/9809969.html
Copyright © 2020-2023  润新知