首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MD5 碰撞概率極低:鹽值+多次哈希防脫庫,非加密算法

     編輯:程式設計疑難解答

關鍵概念

  • MD5 是摘要/哈希算法,非加密(不可逆,無密鑰)。
  • 碰撞:不同輸入產生相同輸出。理論存在,但 2^128 空間下自然碰撞概率可忽略(~10^-38)。
  • 工程對策:
    1. 加鹽:md5(password + random_salt),同密碼產生不同哈希,防彩虹表。
    2. 多次迭代:md5(md5(password + salt) + salt) 或 PBKDF2/bcrypt/Argon2,增加破解成本。
    3. 防脫庫:數據庫存 salt + hash,即使數據洩露也難逆向明文。

登錄驗證

用戶輸入密碼 → 取出存儲的 salt → 同算法計算 hash → 比較與存儲 hash 一致則通過。無其他機制判斷碰撞,極低概率碰撞導致誤判可接受。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved