為什麼不該用內建密碼函數
PWDENCRYPT()/PWDCOMPARE():雜湊演算法脆弱,易遭字典攻擊破解
- 版本相容性差:舊版雜湊升級後無法解密,違背加密初衷
- 未公開文件,微軟不保證向後相容
自行設計加密的三大風險
- 非專家設計的系統極易被破解(ROT-x、單向雜湊幾乎無防護力)
- 一旦破解,所有加密資料全裸;備份也需加密,金鑰管理更複雜
- 重複造輪子成本高,成熟方案觸手可及
推薦加密方案選型
方案一:Microsoft CryptoAPI + CAPICOM(輕量級)
- 安裝 CAPICOM ActiveX 元件
- T-SQL 預存程序中直接呼叫
- 支援對稱/非對稱加密、雜湊演算法(MD5、SHA1 等)
- 適合中小型應用、內部系統
方案二:第三方擴充套件
| 產品 | 特色 | 授權 |
| XP_CRYPT (ActiveCrypt) | 擴充預存程序/UDF,支援視圖/程序/觸發器透明加密 | 免費版(MD5/DES/SHA1) 完整版無限制 |
| ASPEncrypt | ASP 元件,易整合 Web 應用 | 商業授權 |
方案三:檔案/傳輸層加密
- EFS (Encrypting File System):Windows 原生檔案加密,須妥善備份金鑰
- IPSec:網路層加密,透明保護所有傳輸
- SQL Server SSL:原生憑證式加密連線
核心原則
重心應放在避免明文儲存敏感資料,因為資料庫層面是最容易被攻擊的面向。選用成熟方案、妥善管理金鑰、實施最小權限,才是正道。