• 技术文章 >头条

    python中hash的特点应用

    小妮浅浅小妮浅浅2021-01-11 15:28:32原创3904

    在上篇文章中我们已经明确了,hash算法的过程是不可逆的。就是说,我们不能通过结果来推导出之前输入的内容。虽然很多小伙伴们觉得遗憾,不过根据这个特点我们可以进行一些其他适用于不可逆的操作。比如在检测和加密方面的使用就非常出色。下面就python中hash的特点应用的一些方面给大家进行分享。

    1.校验两个文件是否是一个

    import hashlib  # 导入模块
     
    m = hashlib.md5()  # 造一个生产md5的工厂
    with open(r"E:\test\路飞学程作业\打印一千张学员海报\alex.png",'rb') as f:
        for i in f:
            m.update(i)
     
    print(m.hexdigest())
     
    import hashlib  # 导入模块
     
    m = hashlib.md5()  # 造一个生产md5的工厂
    with open(r"E:\test\aa\alex.png",'rb') as f:
        for i in f:
            m.update(i)
     
     
    print(m.hexdigest())

    2.给密码加密

    import hashlib  # 导入模块
    password = input("请输入密码:").strip()
    m = hashlib.md5()  # 造一个生产md5的工厂
    m.update(password.encode("utf-8"))
    print(m.hexdigest())

    拓展:Python 中基于hash的2个数据类型是dict and set , 之前说dict查询速度快,为何快? 说set天生去重,怎么做到的?其实都是利用了hash的特性

    set为何是天生去重的?

    因为每存一个值到set里时, 都要先经过hash,然后通过得出的这个hash值算出应该存在set里的哪个位置,存的时候会先检查那个位置上有没有值 ,有的话就对比是否相等,如果相等,则不再存储此值。 如果不相等(即为空),则把新值存在这。

    当然hash特点应用的领域还不止这些,我们今天只就检测和加密两个方面为大家进行了展开的讨论,有兴趣的小伙伴也可以看看其他的使用。

    专题推荐:python hash特点应用
    上一篇:python不同版本中的_new_有何不同 下一篇:python中魔法函数模块的分类详解

    相关文章推荐

    • Python常用模块之hashlib• python中simhash包怎么用• python3的内置hash函数是什么?• 怎么使用Python中的hashlib模块?• python中hash算法是否可逆

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网