Python3入门(十三)——经常使用内置模块之摘要模块hashlib/hmac

(1)hashlibpython

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

一个md5的加密示例以下:加密

import hashlib

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

更多示例,参考以下:spa

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

(2)hmaccode

为了防止黑客经过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,须要增长一个salt来使得相同的输入也能获得不一样的哈希,这样,大大增长了黑客破解的难度。

若是salt是咱们本身随机生成的,一般咱们计算MD5时采用md5(message + salt)。但实际上,把salt看作一个“口令”,加salt的哈希就是:计算一段message的哈希时,根据不通口令计算出不一样的哈希。要验证哈希值,必须同时提供正确的口令。

这实际上就是Hmac算法:Keyed-Hashing for Message Authentication。它经过一个标准算法,在计算哈希的过程当中,把key混入计算过程当中。

 

示例代码以下:blog

import hmac

key = "se".encode("utf-8")
msg = "hello python".encode("utf-8")
h = hmac.new(key, msg, digestmod="md5")
print(h.hexdigest())
相关文章
相关标签/搜索