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

MD5 演算法 T-SQL 實作(一):基礎輔助函數

     編輯:關於SqlServer

MD5 演算法需大量位元運算,T-SQL 缺乏原生位移、旋轉、無號加法,本文逐一實作所需輔助函數,為核心雜湊函數鋪路。

常數表函數

  • MD5_m_OnBits(@i TINYINT):回傳低 @i 位全 1 的遮罩(0~30 位)。
  • MD5_m_2Power(@i TINYINT):回傳 2^@i(0~30 位)。

位元運算函數

  • MD5_LShift(@iValue INT, @iShiftBits TINYINT):邏輯左移,轉 BINARY(8) 乘 2^shift,再取低 32 bits。
  • MD5_RShift(@iValue INT, @iShiftBits TINYINT):邏輯右移,轉 BINARY(8) 除 2^shift,取低 32 bits。
  • MD5_RotateLeft(@iValue INT, @iShiftBits TINYINT):循環左移 = (左移) | (右移 32-shift)。

無號加法與邏輯函數

  • MD5_AddUnsigned(@iX INT, @iY INT):轉 BIGINT 相加,取低 32 bits。
  • MD5_F/G/H/I:四輪非線性函數(位元 AND/OR/XOR/NOT 組合)。

輪函數

  • MD5_FF/GG/HH/II:各輪步驟封裝,參數 (a,b,c,d,x,s,ac),內含 AddUnsigned、RotateLeft、常數加法。

所有函數均加 WITH ENCRYPTION,原始碼完整可直接部署。下篇將組合成完整 MD5 雜湊函數。

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