轉載 Sqlerver 計算 MD5

在SQl2005下自帶的函數hashbytes() ,此函數是微軟在SQL SERVER 2005中提供的,能夠用來計算一個字符串的 MD5 和 SHA1 值,使用方法以下: --獲取123456的MD5加密串 select hashbytes('MD5', '123456') ; --獲取123456的SHA1加密串 select hashbytes('SHA1', '123456') ; 有了這個函數能夠在sqlserver中爲字符串進行加密,可是hashbytes() 函數的返回結果是 varbinary類型, (以 0x 開頭 16 進制形式的二進制數據)一般狀況下,咱們須要的都是字符串型的數據,不少人首先想到的 可能就是用 CAST 或 Convert 函數將varbinary 轉換爲 varchar,但這樣轉換後的結果會是亂碼,正確轉換 varbinary 可變長度二進制型數據到 16 進制字符串應該使用系統內置函數 sys.fn_VarBinToHexStr()(只在sqlserver2005下有),以下所示: select sys.fn_VarBinToHexStr(hashbytes('MD5', '123456')) 而後就能夠截取須要的部分 select substring(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),3,32) 爲md5加密串。
相關文章
相關標籤/搜索