在專案中,為了防止別人窺視我們的密碼通常我們會採取一些加密方式。這裡簡單介紹一下md5 加鹽加密方法,md5叫做資訊-摘要演算法,嚴格來說不是加密方式,而是資訊摘要。
對於可以接觸到資料庫的dba來說,常常可以通過資料庫看到使用者的具體資訊,如果有人非法盜取別人賬號密碼登入系統更改別人資訊,這將是乙個極大的損失。因此在資料庫儲存使用者密碼的時候通常會採用加密演算法,這樣即使dba在資料庫中看到的也是一串的字元。md5不能反向解密,即使獲得了一串字元也不易通過反向解密得到使用者密碼,保障了使用者密碼安全性。
md5加鹽加密方式其實很簡單:
一、註冊,通過md5加鹽加密
(1)第一步:設計資料庫時候給乙個salt欄位用來儲存鹽值資訊,乙個password欄位來儲存(使用者密碼和鹽經過演算法處理過的)資料。
(2)第二步:後台寫註冊的**時候,可以隨機生成一段字串來做鹽值salt,然後獲取前端使用者註冊輸入密碼password。
(3)第三步:鹽值+前端獲取使用者密碼生成新的密碼經過演算法處理得到乙個新的字串(string newpassword = salt+password)
(4)第四步:資料庫儲存的時候,salt欄位就儲存salt的值,password就儲存newpassword處理後的值。好了到這裡md5加鹽加密處理已經over
二、登入,如何利用鹽值判斷使用者是否登入成功
(1)第一步:獲取使用者登入賬號,通過使用者賬號從資料庫查出使用者資訊(包含:使用者基本資訊,salt、password)
(2)第二步:獲取使用者登入密碼,使用者登入密碼和查詢出的鹽值生成新的密碼字串(string password = user.getsalt()+loginpassword)
(3)第三步:用與註冊相同的演算法處理password生成新的字串newpasswod
(4)第四步:判斷newpassword與user.getpassword()是否相等,如果相等,則登入成功,不相等則登入失敗
下面是md5的加密演算法,直接上**:
public class sal***5
public static string tes***5(string password)
}system.out.println(buffer.tostring());
// 標準的md5加密後的結果
return buffer.tostring();
} catch (nosuchalgorithmexception e)
}}
使用md5加密 登入 註冊
摘要演算法也稱為雜湊演算法 雜湊 演算法,可以將任意長度的資料轉換成乙個定長的 可逆的數字。只要原 文字不 同,計算的結果必然不同 幾乎 用考慮重複的情況 摘要演算法 用於對比資訊源是否一致,因為 只要資料來源發生變化,得到的摘要資訊必然不同,通常用於簽名校驗。訊息摘要演算法的特點 無論輸入的訊息有...
MD5加密及加鹽salt
1.不加salt時每次生成的都不一樣,shane ubuntu newdisk4 qtcreater zlg qt 4.8.6 qt everywhere opensource src 4.8.6 examples desktop screenshot openssl passwd 1 123 1 ...
MD5加密工具類封裝(加鹽)
生成32位md5碼 param password return public static string md5password string password 標準的md5加密後的結果 return buffer.tostring catch nosuchalgorithmexception e ...