SQL Server中使用md5的方式

2022-08-24 11:30:14 字數 730 閱讀 8119

在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加密演算法,希望能拋磚引玉。一 訊息摘要簡介 乙個訊息摘要就是乙個資料塊的數字指紋。即對乙個任意長度的乙個資料塊進行計算,產生乙個唯一指印 對於...