首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MySQL 與 SQL Server MD5 加密函數對照表

     編輯:關於SqlServer

快速對照

資料庫函數/語法範例結果長度
MySQLMD5(str)SELECT MD5('hello');32 字元 Hex
SQL ServerRIGHT(sys.fn_VarBinToHexStr(HASHBYTES('MD5', CAST(str AS VARBINARY))), 32)SELECT RIGHT(sys.fn_VarBinToHexStr(HASHBYTES('MD5', CAST('hello' AS VARBINARY))), 32);32 字元 Hex

詳細說明

MySQL

  • 內建 MD5(),直接回傳 32 字元十六進位字串
  • 支援任意長度字串,NULL 輸入回傳 NULL

SQL Server

  • 無內建 MD5 純量函數,需組合 HASHBYTES + sys.fn_VarBinToHexStr
  • HASHBYTES('MD5', ...) 回傳 VARBINARY(16)
  • sys.fn_VarBinToHexStr 轉為 0x... 格式,故用 RIGHT(..., 32) 取純 Hex
  • 輸入需显式 CAST(... AS VARBINARY) 或 CONVERT
  • SQL Server 2016+ 可用 CONVERT(VARCHAR(32), HASHBYTES('MD5', ...), 2) (樣式 2 = 無 0x 前綴)

跨平台一致性驗證


-- MySQL
SELECT MD5('test123');  -- cc03e747a6afbbcbf8be7668acfebee5

-- SQL Server (2016+ 簡潔寫法)
SELECT CONVERT(VARCHAR(32), HASHBYTES('MD5', CAST('test123' AS VARBINARY)), 2);
-- cc03e747a6afbbcbf8be7668acfebee5

安全性提醒

  • MD5 已知碰撞弱點,**不可用於密碼儲存、數位簽章、完整性驗證等安全敏感場景**
  • 密碼雜湊請使用 BCRYPT、ARGON2、PBKDF2 (SQL Server 2017+ HASHBYTES('SHA2_256', ...) 配合 Salt/迭代)
  • 非安全場景 (快取鍵、資料去重、校驗和) 仍可使用 MD5

雙平台語法差異源於函數庫設計哲學不同:MySQL 傾向內建常用雜湊;SQL Server 採模組化 HASHBYTES 支援多種演算法 (MD5, SHA1, SHA2_256/512)。

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