密碼明文傳遞或者直接寫到資料庫中,都有被偷看的風險
現在存在的一些反查md5的軟體,做兩次為了更好的保密
整體加密流程:
md5(md5(pass明文+固定salt)+隨機salt)
第一次固定salt寫死在前端
第二次加密採用隨機的salt 並將每次生成的salt儲存在資料庫中
登入流程:
前端對使用者輸入的密碼進行md5加密(固定的salt)
將加密後的密碼傳遞到後端
後端使用使用者id取出使用者資訊
後端對加密後的密碼在進行md5加密(取出鹽),然後與資料庫中儲存的密碼進行對比,
ok登入成功,否則登入失敗
註冊流程:
前端對使用者輸入的密碼進行md5加密(固定的salt)
將加密後的密碼傳遞到後端
後端隨機生成乙個salt
使用生成salt對前端傳過來的密碼進行加密,然後將加密後密碼和salt一起儲存到db中
參考:/** 用於生成md5 密碼的工具類
* */
public class md5util
/*固定鹽值*/
private static final string salt = "1a2b3c4d";
/** 第一次md5 :
* 用於 通過輸入的密碼生成 傳輸的密碼 :方法 通過固定鹽值和明文密碼之間的拼接在生成md5
* @param password
* @return
*/public static string inputpasstoformpass(string password)
/*** 第二次md5 : 通過輸入的密碼和資料庫隨機鹽值 繼續生成 密碼
* @param input
* @param salt
* @return
*/public static string formpasstodbpass(string input,string salt)
/**最終呼叫生成密碼的方法
* */
public static string inputpasstodbpass(string password,string dbsalt)
public static void main(string args)
}
前端md5加密執行兩次
在練習中遇到乙個小bug,解決後記錄 問題是這樣的,前端修改密碼的表單用了md5進行加密,同時使用bootstrapvalidator進行表單驗證 reset pwd form on submit function 在提交到後台後,修改完密碼卻不能正常登入了。經過檢查,資料庫中的密碼確實發生了改變 ...
專案 兩次MD5
第一次 在前端加密,客戶端 密碼加密是 明文密碼 固定鹽值 生成md5用於傳輸,目的,由於http是明文傳輸,當輸入密碼若直接傳送服務端驗證,此時被擷取將直接獲取到明文密碼,獲取使用者資訊。加鹽值是為了混淆密碼,原則就是明文密碼不能在網路上傳輸。第二次 在服務端再次加密,當獲取到前端傳送來的密碼後。...
MD5 兩次加密
1 新增依賴 dependency groupid commons codec groupid artifactid commons codec artifactid dependency dependency groupid org.apache.commons groupid artifacti...