pCloud Partner Program

SQL 2005的HashBytes function (MD5, SHA1)

程式技術/Database 2008/05/19 00:54
views: 143347 times
在 SQL 2005版本中, 已內建了 HashBytes function 用來做 Hash 的功能, 可以參考該 function 的用法: http://msdn.microsoft.com/en-us/library/ms174415.aspx. 不過這個功能在 SQL 2000 的版本內並無內建, 若有需要可以參考 code project 上的 MD5 Hash SQL Server Extended Stored Procedure, 或是使用純 T-SQL 的方式的 MD5 : MD5算法的T-SQL實現(FOR SQL2000) .

使用方式很簡單, 直接呼叫 HashBytes 函數並指定演算法即可, 如下:


不過傳回的是 varbinary , 若是要取回為字串的型態, 得再用 sys.fn_VarBinToHexStr() 這個 function 來轉換, 如下:


參考文章:
好用的 MS SQL 2005 欄位字串加密應用 ( MD5 與 SHA1 )
SQL Server 数据库中的 MD5 和 SHA1

另外若是要作密碼加密使用的話, 在 SQL 2000 中有內建 PWDCOMPARE, PWDENCRYPT 這些函數可供使用, 可以參考 BlueShop 討論.
top

Trackback Address :: http://diary.tw/tim/trackback/502

  1. chainchung 2008/05/19 15:11 MODIFY/DELETE REPLY

    有了 LINQ 是否就可以不用學 SQL 指令了哩? 這樣, 程式人員就可以把精神花在前端程式上, 不需管後端怎麼處理.

    • Timothy 2008/05/20 23:13 MODIFY/DELETE

      從LINQ的設計出發點及概念來看, 的確是這樣子沒錯, 不過在現在, 或是不久的將來, T-SQL仍是 developer務必要學會的一項技能, 當然, 隨著開發工具及語言的進步, 相信會愈來愈方便開發分工化及各開發人員的方便著想囉!

  2. 不是東西的東西 vs 沒有邏輯的邏輯 2008/05/22 15:44 MODIFY/DELETE REPLY

    事實上;不需這麼麻煩 sql2k 支援使用外部的 ACTIVEX , 所以你可以自己寫一個ACTIVEX 給 ;SQL SERVER 內的STORE PROCEDURE 來使用

    • Timothy 2008/05/22 23:46 MODIFY/DELETE

      感謝lazy guy 兄的指教, sql2k 列出的方案使用純的 T-SQL 的確是落落長, 而且效能一定也大打折扣. 使用 activex 或 extend store procedure 的方式或許更為方便, 效能也更好, 不過基於可攜的考量, 在某些狀況下, 使用 T-SQL 還是有他的方便之處. 但效能是很重要的一件事啦!

  3. 2009/09/24 16:37 MODIFY/DELETE REPLY

    不過我發現到,當直接用在欄位上時,會因為欄位的屬性char or nvarchar而產生不同的編碥結果.當有char屬性的欄位時,最好都轉成char的型態,但也要用Rtrim來將空白去除,不然也會產生不正確的結果

  4. 2009/09/24 16:38 MODIFY/DELETE REPLY

    還有加了sys.fn_VarBinToHexStr的效果,好像只是大小寫轉換,前頭還是有0x的字元,要用right函式來取出所要的長度(md5: 32, sha1: 40)來用

  5. 2009/09/25 09:02 MODIFY/DELETE REPLY

    上一則的留言,是我沒發現到~~加了sys.fn_VarBinToHexStr函式是真的將資料轉成純文字,只是用Microsoft SQL Server Management Studio查看時,真的會以為只是大小寫的轉換.

Write a comment


PREV : [1] : ... [384] : [385] : [386] : [387] : [388] : [389] : [390] : [391] : [392] : ... [522] : NEXT



Patriot美商博帝 BURST 960G 2.5吋 SSD固態硬碟
TEAM十銓 L5 Lite 3D 1TB 2.5吋 SSD固態硬碟
統一 番茄汁(6入/組)
UNITEK TYPE-C 轉VGA/HDMI/PD充電/HUB 鋁合金多功能轉接器
亞果元素 CASA Hub VH1 Type-C 轉 VGA - HDMI二合一顯示轉接器


 Waiting...