1. 程式人生 > >SQL Server 2005 MD5函式

SQL Server 2005 MD5函式

        在SQL Server 2005下自帶的函式HashBytes() ,此函式是微軟在SQL Server 2005中提供的,可以用來計算一個字串的MD5和SHA1值,使用方法如下:

--獲取123456的MD5加密串select hashbytes('MD5', '123456') ;

--獲取123456的SHA1加密串select hashbytes('SHA1', '123456') ;

       有了這個函式可以在SQL Server中為字串進行加密,但是HashBytes() 函式的返回結果是VarBinary型別(以 0x 開頭 16 進位制形式的二進位制資料)。

       通常情況下,我們需要的都是字串型的資料,很多人首先想到的可能就是用CAST或Convert函式將VarBinary轉換為VarChar,但這樣轉換後的結果會是亂碼,正確轉換VarBinary可變長度二進位制型資料到16進位制字串應該使用系統內建函式sys.fn_VarBinToHexStr()或sys.fn_SqlVarBaseToStr(只在SQL Server2005下有),如下所示:

select sys.fn_VarBinToHexStr(hashbytes('MD5', '123456'))

然後就可以擷取需要的部分:set right(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),32)為MD5加密串。