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())
相關文章
相關標籤/搜索