1. 程式人生 > >salt值(鹽值)

salt值(鹽值)

SALT值屬於隨機值。使用者註冊時,系統用來和使用者密碼進行組合而生成的隨機數值,稱作salt值,通稱為加鹽值。   1、背景:系統通常把使用者的密碼如MD5加密後,以密文形式儲存在資料庫中,來防止黑客偷窺。 2、產生:隨著對MD5密文查詢工具的出現,而很多使用者的密碼又設定簡單,單純的對使用者密碼進行MD5加密後儲存,用密文很容易就能反查詢得到某使用者的密碼。 3、原理:為使用者密碼新增Salt值,使得加密的得到的密文更加冷僻,不宜查詢。即使黑客有密文查詢到的值,也是加了salt值的密碼,而非使用者設定的密碼。salt值是隨機生成的一組字串,可以包括隨機的大小寫字母、數字、字元,位數可以根據要求而不一樣。 4、用途:當用戶首次提供密碼時(通常是註冊時),由系統自動新增隨機生成的salt值,然後再雜湊。而當用戶登入時,系統為使用者提供的程式碼撒上同樣的加鹽值,然後雜湊,再比較雜湊值,已確定密碼是否正確。 5、其它:經過新增salt值處理的密碼,即使使用者設定的原密碼是相通的,資料庫中的密文卻是不同的。   引: 單向雜湊加密                                salt                                 |                                 V                 -----明文---->  單向雜湊演算法 ----->密文   為了加強單向雜湊計算的安全性,會給雜湊演算法加點鹽(salt),salt相當於加密的金鑰,增加破解的難度。常用的單向雜湊演算法有MD5、SHA等。 單向雜湊演算法還有一個特點就是輸入的任何微小變化都會導致輸出的完全不同,這個特性有時也會被用來生成資訊摘要、計算具有高離散程度的隨機數等用途。