雜湊與加密完全指南:MD5、SHA256、AES 的正確用法
加密編碼(更新於 2026年5月25日)
雜湊 vs 加密:關鍵區別
| 雜湊 (Hash) | 加密 (Encryption) | |
|---|---|---|
| 可逆性 | ❌ 不可逆 | ✅ 可解密 |
| 用途 | 完整性校驗、指紋 | 保密傳輸 |
| 金鑰 | 不需要 | 需要金鑰 |
| 範例 | MD5、SHA256 | AES、RSA |
常見誤區:「MD5 加密密碼」—— MD5 是雜湊不是加密,且已不安全。
雜湊演算法
MD5
- 輸出:128 位 (32 十六進位字元)
- 速度:極快
- 安全性:❌ 已碰撞,不應用於安全場景
- 適用:檔案完整性快速校驗(非安全)
使用 MD5 工具 計算檔案或文字的 MD5 值。
SHA 系列
| 演算法 | 輸出長度 | 安全性 | 適用 |
|---|---|---|---|
| SHA-1 | 160 位 | ❌ 已碰撞 | 遺留系統 |
| SHA-256 | 256 位 | ✅ 安全 | 推薦使用 |
| SHA-512 | 512 位 | ✅ 安全 | 高安全需求 |
使用 SHA256 工具 計算 SHA-256 雜湊。
HMAC
雜湊 + 金鑰 = 訊息認證碼。既驗證完整性,又驗證來源:
HMAC-SHA256(message, secret_key) → 認證雜湊
使用 HMAC 工具 計算 HMAC 值。
加密演算法
AES(對稱加密)
同一個金鑰加密和解密:
| 模式 | 特點 | 推薦 |
|---|---|---|
| AES-128-CBC | 經典模式 | 一般用途 |
| AES-256-GCM | 認證加密 | 推薦 |
| AES-256-CTR | 串流式加密 | 大檔案 |
使用 AES 加密工具 進行 AES 加解密。
何時用雜湊 vs 加密
檔案下載校驗 → SHA256 雜湊對比
密碼儲存 → bcrypt/argon2(不是 MD5!)
API 簽章 → HMAC-SHA256
資料傳輸 → AES-256-GCM 加密
常見誤用與正確做法
| 誤用 | 問題 | 正確做法 |
|---|---|---|
| MD5 儲存密碼 | 彩虹表秒破 | bcrypt/argon2 + salt |
| SHA256 儲存密碼 | 太快,易暴力破解 | 專用密碼雜湊函式 |
| 硬編碼 AES 金鑰 | 原始碼洩露 = 金鑰洩露 | 環境變數 / KMS |
| ECB 模式加密 | 相同明文 = 相同密文 | 使用 CBC/GCM 模式 |
| 雜湊 = 加密 | 概念混淆 | 需要解密用 AES |
工具庫加密工具鏈
全部基於 Web Crypto API,瀏覽器本機處理:
總結
理解雜湊與加密的本質區別,選擇正確的演算法和模式,是資訊安全的基本功。工具庫提供完整的加密工具鏈,全部在瀏覽器本機執行,適合開發除錯和學習——但生產環境請使用經過稽核的密碼學函式庫。
#哈希#加密#MD5#SHA256#AES#安全