วิธีสร้าง MD5 ใน MSSQL

   โดยปกติแล้ว ใน MSSQL ไม่มี Function MD5 มาให้ ผมได้ลองค้นหาทาง Internet แล้ว ทำให้พบว่า เราต้องสร้าง การใช้ Function Hash MD5 ดังกล่าวด้วยตัว ซึ่งผมก็เจอ Project นึงใน CODE PROJECT ซึ่งเป็นการเขียน Function MD5 สำหรับ MSSQL เอาไว้เรียบร้อยแล้ว หลังจากลองทดสอบ และใช้งานแล้ว พบว่า มีความสามารถเหมือน MD5 ของ MySQL เลย จึงอยากเขียนเก็บไว้ให้คนอื่นที่มีความต้องการอย่างเดียวกัน เก็บไว้ใช้บ้างตอนแรกโหลดไฟล์ xp_md5_dll.zip แล้วแตกไฟล์ xp_md5.dll ไปที่

C:\Program Files\Microsoft SQL Server\MSSQL\Binn

จากในไปที่ Query Analyzer แล้วพิมพ์

USE master;
EXEC sp_addextendedproc ‘xp_md5′, ‘xp_md5.dll’

ก็คือการ เอา dll ไปใช้ใน mssql นั่นเอง จากนั้น ให้ไปสร้าง User Defined Function ด้วย Script นี้ ในแต่ละ DB ที่เราจะใช้ หรือ สร้างไว้ที่ Master แล้วอ้างอิงเรียกใช้ก็ได้

CREATE FUNCTION [dbo].[md5] (@DATA TEXT)
RETURNS CHAR(32) AS

BEGIN
  DECLARE @hash CHAR(32)
  EXEC master.dbo.xp_md5 @DATA, -1, @hash OUTPUT
  RETURN @hash
END

เวลาเรียกใช้ก็เพียงแค่

SELECT dbo.md5('admin')

มันก็จะ return มาเป็น

21232f297a57a5a743894a0e4a801fc3

ซึ่งจะเท่ากับของ MySQL เปรี๊ยบเลย

ข้อดี ของการฝัง MD5 Function ใน MSSQL ทำให้โปรแกรมเมอร์ต่างๆ ที่เขียนกันต่างภาษาไม่ต้องไปเขียน Function MD5 กันให้วุ่นวาย

ข้อเสีย ถ้าย้าย DB ก็ต้องมาหา Function กันใหม่ ผูกติดเกินไปสำหรับ Database

ลองโหลดไปลองเล่นกันดูได้ครับ

http://www.nop.in.th/wp-content/uploads/2007/05/xp_md5_dll.zip

Credit : http://www.nop.in.th/database/mssql/md5-in-mssql

Comments

Popular posts from this blog

การตั้งเวลาระหว่าง Server และ Client

วิธีตั้งค่า NTP บน Primary Domain Controller

Installation and Run Node.JS on IIS