執行兩次md5

2021-09-20 15:32:12 字數 1225 閱讀 9540

密碼明文傳遞或者直接寫到資料庫中,都有被偷看的風險

現在存在的一些反查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...