首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 加密與壓縮函數實戰:AES/DES/MD5/SHA1/COMPRESS 全解析

     編輯:MySQL 資料庫相關知識

⚠️ 前置提醒

非二進制字串類型(CHAR/VARCHAR/TEXT)隱式字符集轉換可能導致數據值變化,加密/壓縮前請確認字符集一致性。

1. AES 加密(官方標準,128/256 位)


AES_ENCRYPT(str, key_str)  -- 返回二進制串
AES_DECRYPT(crypt_str, key_str)  -- 返回原字串,輸入為 NULL 則返回 NULL
  • 塊級算法,自動補齊非偶數長度
  • MySQL 採用 128 位密鑰(速度快、安全足夠)

2. ENCODE/DECODE(舊式,不推薦生產用)


ENCODE(str, pass_str)   -- 等長輸出
DECODE(crypt_str, pass_str)

3. DES 三重加密


DES_ENCRYPT(str[, key_num|key_str])
DES_DECRYPT(crypt_str[, key_str])  -- 錯誤返回 NULL

4. 壓縮/解壓(需編譯 zlib 支援)


COMPRESS(str)       -- 返回二進制串,無 zlib 則返回 NULL
UNCOMPRESS(str)     -- 非壓縮數據返回 NULL

5. 密碼專用:PASSWORD()

  • 內部認證系統使用,不建議應用層調用
  • 應用層請用 MD5() 或 SHA1()
  • mysql.user 表中 Password 列存儲其加密值

6. ENCRYPT() - Unix crypt()


ENCRYPT(str[, salt])  -- Windows 不支援 crypt(),返回 NULL

7. MD5() - 128 位摘要


MD5(str)  -- 返回 32 位十六進制字串

8. SHA1()/SHA() - 160 位摘要


SHA1(str)  -- 返回 40 位十六進制字串

🖼️ 文中包含多張加密結果截圖(PASSWORD/MD5/SHA1 輸出示例),原圖路徑保留。

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