WP Remix
Nop Pinyowanichaka | ก้าวสั้นๆ ในวันเบาๆ ของผม
24
May

โดยปกติแล้ว ใน 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 แล้วอ้างอิงเรียกใช้ก็ได้

1
2
3
4
5
6
7
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

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

1
SELECT dbo.md5('admin')

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

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

ขอดี ของการฝัง MD5 Function ใน MSSQL
ทำให้โปรแกรมเมอร์ต่างๆ ที่เขียนกันต่างภาษาไม่ต้องไปเขียน Function MD5 กันให้วุ่นวาย
ขอเสีย
ถ้าย้าย DB ก็ต้องมาหา Function กันใหม่ ผูกติดเกินไปสำหรับ Database

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

MD 5 For MSSQL

ขอบคุณ Vic Mackey

เรื่องอื่นๆ ที่น่าสนใจ

Category : MSSQL

No comments yet.

เม้นท์กันซะหน่อย