zoukankan      html  css  js  c++  java
  • python之hashlib模块

    算法(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。可以说,算法就是计算机解题的过程。

    算法具有五个重要特征:

      1.有穷性:步骤有限

      2.明确性:算法每一步必须有明确的意义

      3.输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是算法本身定的初始条件

      4.输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。

      5.可行性:算法原则上是可以精确运行的

    hash是一种算法,算法就像是一座工厂,接受传入的内容(输入),经过加工处理(运算)得到加工处理后的产品(一串hasn值)。

    hash算法的特点:

      1.只要传入的内容一样,经过运算后的得到 的hash值必然是 一样的;=====》完整性验证

      2.hash值是不能反解的;=======》把密码做成hash值,不以明文的形式传输/存储

      3.只要hash算法不变,无论明文的内容有多大多小,hash值的长度是一样的。===》不影响网络传输

    import hashlib
    #常规用法一
    # m=hashlib.md5('helloworld'.encode('utf-8'))
    # print(m.hexdigest())
    #fc5e038d38a57032085441e7fe7010b0
    
    #常规用法二
    # m=hashlib.md5()
    # m.update('hello'.encode('utf-8'))
    # m.update('world'.encode('utf-8'))
    # print(m.hexdigest())
    #fc5e038d38a57032085441e7fe7010b0
    
    # m=hashlib.md5()
    # m.update('helloworld'.encode('utf-8'))
    # print(m.hexdigest())
    #fc5e038d38a57032085441e7fe7010b0
    
    # m=hashlib.md5()
    # m.update('hello world'.encode('utf-8'))
    # print(m.hexdigest())
    #5eb63bbbe01eeed093cb22bb8f5acdc3
    
    '''
    从以上的练习中可以看出,同样的内容得到的hash值是一样的,
    稍微有点改动,甚至加一个空格都会得到不同的hash结果
    '''
    

     

    加盐

    import hashlib
    m=hashlib.md5()
    m.update('天王盖地虎'.encode('utf-8'))
    m.update('密码。。。'.encode('utf-8'))
    m.update('小鸡炖蘑菇'.encode('utf-8'))
    print(m.hexdigest())
    #6e7122afda007b679dfb7759f9122783
    

      

    hmac模块

    import hmac
    h=hmac.new('天王盖地虎'.encode('utf-8'))
    h.update('密码。。。'.encode('utf-8'))
    print(h.hexdigest())
    #e76a9abfcec64c6594384c14dbbd8f82
    

      

  • 相关阅读:
    Nginx专题(二)-----虚拟主机、location规则、rewrite、负载均衡配置
    Nginx专题(一)-----简介
    springMVC自动转义问题
    Tomcat专题(三)-----Tomcat性能优化
    Tomcat专题(二)-----Tomcat源码、嵌入式Tomcat
    Tomcat专题(一)-----架构体系
    jvm性能调优(五)-----深入了解性能优化
    jvm性能调优(四)-----编写高效的java代码
    jvm性能调优(三)-----JVM的执行子系统
    jvm性能调优(二)-----垃圾回收、内存分配
  • 原文地址:https://www.cnblogs.com/qiaoqianshitou/p/8783402.html
Copyright © 2011-2022 走看看