1 鹽值哈希的基本概念:html
哈希密碼利用特定的哈希函數將明文密碼轉換爲密文。然而,這樣的密碼也不是很是安全的,黑客能夠經過字典、彩虹表(網上就能夠免費下載)對這種密碼進行暴力破解,因此單純的哈希密碼還不足以應付安全問題。因此須要加入鹽值(salt value)。算法
帶鹽值的哈希密碼,就是在原始密碼的基礎上添加一個「鹽值」,而後對新生成的明文進行哈希,獲得的密碼密文,就是帶鹽值的哈希密碼。 數據庫
2 工做原理:安全
帶鹽值的哈希密碼算法設計思想:函數
在首次建立密碼和修改密碼時:spa
1)將用戶提供的密碼和系統生成的一個比較複雜的附加碼(即鹽值)進行結合,對結合的結果進行哈希運算;.net
2)而後系統爲該用戶隨機生成一個指定長度的字節序列,把這個序列和剛剛哈希運算的結果進行結合,再進行哈希運算;設計
3)哈希結果與第二個鹽值結合,獲得最終的密文。存入數據庫。htm
當用戶登陸時,相應的驗證過程是:blog
1)用戶提供用戶名和密碼;
2)系統經過用戶名找到與之對應的Hash值和Salt值;
3)系統將Salt值和用戶提供的密碼鏈接到一塊兒;
4)對鏈接後的值進行散列,獲得Hash';
5)比較Hash和Hash'是否相等,相等則表示密碼正確,不然表示密碼錯誤。
參考資料: