軟體設計的過程中,使用者的密碼資訊最為敏感,在進行使用者登入驗證時,除了将密碼在傳輸的過程中,進行md5加密,避免密碼明文傳輸過程中被截獲外,還有一個就是密碼在資料庫中的存儲安全問題。
常用的方案是對密碼進行“加鹽”處理。
使用者注冊。
1. 得到使用者傳過來的密碼後,首先在計算機中擷取一個随機數,
2. 擷取到随機數後,設計一個任意算法,對随機數與使用者密碼進行拼接處理,比如最簡單的(使用者密碼+随機數),者将得到一個全新的字元串
3. 我們再對這個新的字元串進行雜湊演算法處理,得到一個新的密碼,由于雜湊演算法的特殊性,該算法是不可逆的。
4. 将使用者id,新密碼和随機數儲存到資料庫中。使用者注冊成功。
使用者登入。
1. 服務端擷取到使用者的id和密碼後,根據使用者id從資料庫中取出該使用者的新密碼和随機數。
2. 把使用者傳過來的舊密碼和随機數交給使用者注冊第2步中的随機數和密碼拼接算法,拼接後,得到一個新的字元串(和使用者注冊第2步得到的全新字元串是一模一樣的)。
3. 将新字元串交給雜湊演算法處理将得到一個處理結果。
4. 如果處理後的結果和資料庫中存儲的新密碼相同,那麼,該使用者傳過來的密碼是正确的,登入成功,否則,登入失敗。
這就是常用的使用者密碼“加鹽“!