MD5(Message-Digest Algorithm 5)是一種被廣泛使用的密碼散列函數,可以產生出一個 **128 位(16 字節)**的散列值(Hash Value),通常用一個 32 位的十六進制數字表示。
本工具支持將輸入的每一行字符串分別進行 MD5 加密,提供四種加密格式選擇:32位小寫、32位大寫、16位小寫、16位大寫。滿足不同開發場景的需求:
| 格式名稱 | 字符長度 | 示例 (以 "123456" 爲例) | 應用場景 |
|---|---|---|---|
| 32位小寫 | 32 字符 | e10adc3949ba59abbe56e057f20f883e | 標準格式,絕大多數開發語言默認輸出 |
| 32位大寫 | 32 字符 | E10ADC3949BA59ABBE56E057F20F883E | 某些特定系統或金融接口要求 |
| 16位小寫 | 16 字符 | 49ba59abbe56e057 | 提取 32 位中間的第 9 到 24 位 |
| 16位大寫 | 16 字符 | 49BA59ABBE56E057 | 簡化的哈希標識 |
雖然 MD5 曾經被廣泛用於密碼存儲,但隨着計算能力的提升和“彩虹表”攻擊的成熟,MD5 已經不再適合加密高度機密的密碼。
Q:MD5 可以解密嗎?
A: 從數學原理上講,MD5 是不可逆的,不存在所謂的“解密”。網上所謂的“MD5在線解密”實際上是利用龐大的數據庫進行“反向查詢(彩虹表)”,即提前計算好千萬級常用密碼的 MD5 值進行匹配。
Q:爲什麼我輸入的中文加密結果和別人不一樣?
A: 這通常是因爲字符編碼不同。本工具默認採用 UTF-8 編碼。如果對方使用的是 GBK 編碼,由於漢字的二進制表示不同,生成的 MD5 值也會完全不同。
Q:16 位 MD5 和 32 位 MD5 有什麼區別?
A: 16 位 MD5 實際上是從 32 位 MD5 字符串中取出的中間 16 位字符。它們的邏輯核心是相同的,只是截取長度不同。
md5()、Java MessageDigest、Python hashlib.md5() 等標準庫完全一致。更多MD5相關基礎知識: MD5 深度解析:原理、結構、碰撞、應用與替代方案