MSSQL MD5 function – TSQL MD5 Function

今天想為自己建立個一個資料上加入一個MD5 的Field
主要是用來把資料儲存得比較安全的
回想之前用MySQL 有一個方法十分簡單..
只要用

SELECT MD5('想MD5的文字')

便可以
MySQL MD5 Function Demo
誰不知..MSSQL 沒有一個Built-in的功能來做MD5 encrypt文字這個動作
之後做了一段資料research後便自己做了一個MD5 的功能給MSSQL用了
這個function 用了 HashBytes 把文字轉成Hash Bytes
之後用 sys.fn_sqlvarbasetostrBytes轉成文字

詳情可以參考以下URL
HashBytes (Transact-SQL)

-- Author:		[Share Chi Wai]
-- Create date: [2011-09-22]
-- Description:	[This function is used to generate MD5 value of the Input String]
-- =============================================
CREATE FUNCTION [dbo].[GenerateMD5Value]
(
	-- Add the parameters for the function here
	@ValueToEncrypt VARCHAR(500) =''
)
RETURNS VARCHAR(32)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @MD5String VARCHAR(50)

	-- Add the T-SQL statements to compute the return value here
	SET @MD5String = RIGHT(sys.fn_sqlvarbasetostr(HashBytes('MD5', @ValueToEncrypt)),32)

	-- Return the result of the function
	RETURN @MD5String

END

我們可以用以下方法執行這個功能

SELECT dbo.GenerateMD5Value('Share Chi Wai') AS [MD5 String]

TSQL MD5 Function Demo

Hope you find it useful

Leave a Reply