วิธีสร้าง 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
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
Post a Comment