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