廖某在文章中解釋得很含糊,我只知道hmac是通過password+key進(jìn)行生成,這與前面一節(jié)將的加Salt的方法差不多。
專業(yè)領(lǐng)域包括成都網(wǎng)站制作、網(wǎng)站建設(shè)、成都做商城網(wǎng)站、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
以下鏈接的博主解釋的很清晰。
https://blog.csdn.net/hwaphon/article/details/52175431
HMAC 算法主要應(yīng)用于身份驗(yàn)證,用法如下: 1.客戶端發(fā)出登錄請求 2.服務(wù)器返回一個隨機(jī)值,在會話記錄中保存這個隨機(jī)值 3.客戶端將該隨機(jī)值作為密鑰,用戶密碼進(jìn)行 hmac 運(yùn)算,遞交給服務(wù)器 4.服務(wù)器讀取數(shù)據(jù)庫中的用戶密碼,利用密鑰做和客戶端一樣的 hmac運(yùn)算,然后與用戶發(fā)送的結(jié)果比較,如果一致,則用戶身份合法。
加Salt是固定的,用戶名也是固定的,被知道了一樣破解。但是,HMAC是的key是每次隨機(jī)的,這樣比加Salt的方法更加安全可靠。
import hmac message = b'Hello, world!' key = b'secret' h = hmac.new(key, message, digestmod='MD5') # 如果消息很長,可以多次調(diào)用h.update(msg) print (h.hexdigest())
運(yùn)行結(jié)果:
fa4ee7d173f2d97ee79022d1a7355bcf