在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'))
然後就可以擷取需要的部分
set substring(sys.fn_varbintohexstr(hashbytes('md5','123456')),3,32)
為md5加密串。
原文出處
Oracle中使用MD5加密
dbms obfuscation toolkit.md5返回的字串,是raw型別,要正確顯示,需要經過utl raw.cast to raw轉換 declare v2 varchar2 32 begin v2 utl raw.cast to raw sys.dbms obfuscation tool...
java中使用MD5進行加密
在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...
java中使用MD5進行加密
在各種應用系統的開發中,經常需要儲存使用者資訊,很多地方都要儲存使用者密碼,而將使用者密碼直接儲存在伺服器上顯然是不安全的,本文簡要介紹工作中常用的 md5加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...