(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())