最近因為寫了一個密碼產生器,剛好需要用到md5運算,平常在PHP時都是直接用md5()就可以取得MD5碼了,可是VB我沒有實際嘗試去用過MD5碼,原本還在擔心.NET裡面會不會沒有MD5的資源,這樣子就必須要自己來寫….Orz,幸好去查了一下MSDN的結果是有的~ 只是過程稍微負責了點,不過也幸好MSDN有提供一個getMD5hash的function,所以我就直接引用啦
以下這段函式是引用自MSDN的,在這裡先聲明囉
P.S.使用此函式,需要載入system、system.text、System.Security.Cryptography
Imports System
Imports System.Security.Cryptography
Imports System.Text
另外你如果是使用其他語言(.Net)的話,也可以到MSDN上找看看,都有寫好現成的函式了(在範例那裏) http://msdn.microsoft.com/zh-tw/library/system.security.cryptography.md5.aspx
Function getMd5Hash(ByVal input As String) As String 'MD5計算Function,取自MSDN
' 建立一個MD5物件
Dim md5Hasher As MD5 = MD5.Create()
' 將input轉換成MD5,並且以Bytes傳回,由於ComputeHash只接受Bytes型別參數,所以要先轉型別為Bytes
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))
' 建立一個StringBuilder物件
Dim sBuilder As New StringBuilder()
' 將Bytes轉型別為String,並且以16進位存放
Dim i As Integer
For i = 0 To data.Length - 1
sBuilder.Append(data(i).ToString("x2"))
Next i
'傳回
Return sBuilder.ToString()
End Function