zoukankan      html  css  js  c++  java
  • Python3入门(十三)——常用内置模块之摘要模块hashlib/hmac

    (1)hashlib

    hashlib提供了常见摘要算法:如MD5,SHA1等等

    一个md5的加密示例如下:

    import hashlib
    
    m = hashlib.md5()
    m.update("hello python".encode("utf-8"))
    print(m.hexdigest())

    更多示例,参考如下:

      https://blog.csdn.net/qq_31726841/article/details/82464990

    (2)hmac

    为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难度。
    
    如果salt是我们自己随机生成的,通常我们计算MD5时采用md5(message + salt)。但实际上,把salt看做一个“口令”,加salt的哈希就是:计算一段message的哈希时,根据不通口令计算出不同的哈希。要验证哈希值,必须同时提供正确的口令。
    
    这实际上就是Hmac算法:Keyed-Hashing for Message Authentication。它通过一个标准算法,在计算哈希的过程中,把key混入计算过程中。

    示例代码如下:

    import hmac
    
    key = "se".encode("utf-8")
    msg = "hello python".encode("utf-8")
    h = hmac.new(key, msg, digestmod="md5")
    print(h.hexdigest())
  • 相关阅读:
    Christmas Jump(k_push)
    cloudyarn(k_push)
    Eye sketch
    Candy Treasure Box
    Active Ball
    Lotus words
    Super Fish
    [POJ2436] Disease Management
    [bzoj3376] Cube Stacking 方块游戏
    [POJ3009] Curling 2.0
  • 原文地址:https://www.cnblogs.com/jiangbei/p/10996503.html
Copyright © 2011-2022 走看看