第一次 (在前端加密,客戶端):密碼加密是(明文密碼+固定鹽值)生成md5用於傳輸,目的,由於http是明文傳輸,當輸入密碼若直接傳送服務端驗證,此時被擷取將直接獲取到明文密碼,獲取使用者資訊。
加鹽值是為了混淆密碼,原則就是明文密碼不能在網路上傳輸。
第二次:在服務端再次加密,當獲取到前端傳送來的密碼後。通過md5(密碼+隨機鹽值)再次生成密碼後存入資料庫。
防止資料庫被盜的情況下,通過md5反查,查獲使用者密碼。方法是鹽值會在使用者登陸的時候隨機生成,並存在資料庫中,這個時候就會獲取到。
第二次的目的:
黑客通過解析前端js檔案,知道如果md5加密的過程,就知道此時使用者的密碼。
但是此時我們要是在後端加入隨機鹽值和傳輸密碼的md5組合,黑客是無法知道通過後端密碼加密過程的,從而無法知道密碼。
整體加密流程
md5(md5(pass明文+固定salt)+隨機salt)
第一次固定salt寫死在前端
第二次加密採用隨機的salt 並將每次生成的salt儲存在資料庫中
登入流程:
前端對使用者輸入的密碼進行md5加密(固定的salt)
將加密後的密碼傳遞到後端
後端使用使用者id取出使用者資訊
後端對加密後的密碼在進行md5加密(取出隨機salt),然後與資料庫中儲存的密碼進行對比,
ok登入成功,否則登入失敗
執行兩次md5
密碼明文傳遞或者直接寫到資料庫中,都有被偷看的風險 現在存在的一些反查md5的軟體,做兩次為了更好的保密 整體加密流程 md5 md5 pass明文 固定salt 隨機salt 第一次固定salt寫死在前端 第二次加密採用隨機的salt 並將每次生成的salt儲存在資料庫中 登入流程 前端對使用者輸...
MD5 兩次加密
1 新增依賴 dependency groupid commons codec groupid artifactid commons codec artifactid dependency dependency groupid org.apache.commons groupid artifacti...
前端md5加密執行兩次
在練習中遇到乙個小bug,解決後記錄 問題是這樣的,前端修改密碼的表單用了md5進行加密,同時使用bootstrapvalidator進行表單驗證 reset pwd form on submit function 在提交到後台後,修改完密碼卻不能正常登入了。經過檢查,資料庫中的密碼確實發生了改變 ...