原文:http://baike.baidu.com/link?url=VBUqC6fqVp5OB3mhfzlphknuYHwNqtO-VWq0tahehkdWx_ECIWOZCEWw6X0opDTf
Imports System Imports System.Security.Cryptography Imports System.Text Module Example ' 哈希输入字符串并返回一个32字符的十六进制字符串哈希。 Function getMd5Hash(ByVal input As String) As String ' 创建新的一个MD5CryptoServiceProvider对象的实例。 Dim md5Hasher As New MD5CryptoServiceProvider() ' 输入的字符串转换为字节数组,并计算哈希。 Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)) ' 创建一个新的StringBuilder收集的字节,并创建一个字符串。 Dim sBuilder As New StringBuilder() ' 通过每个字节的哈希数据和格式为十六进制字符串的每一个循环。 Dim i As Integer For i = 0 To data.Length - 1 sBuilder.Append(data(i).ToString("x2")) Next i ' 返回十六进制字符串。 Return sBuilder.ToString() End Function ' 验证对一个字符串的哈希值。 Function verifyMd5Hash(ByVal input As String,ByVal hash As String) As Boolean ' 哈希的输入。 Dim hashOfInput As String = getMd5Hash(input) ' 创建StringComparer1的哈希进行比较。 Dim comparer As StringComparer = StringComparer.OrdinalIgnoreCase If 0 = comparer.Compare(hashOfInput,hash) Then Return True Else Return False End If End Function Sub Main() Dim source As String = "Hello World!" Dim hash As String = getMd5Hash(source) Console.WriteLine("进行MD5加密的字符串为:" + source + " 加密的结果是:" + hash + ".") Console.WriteLine("验证哈希...") If verifyMd5Hash(source,hash) Then Console.WriteLine("哈希值是相同的。") Else Console.WriteLine("哈希值是不相同的。") End If End Sub End Module ' 此代码示例产生下面的输出: ' ' 进行MD5加密的字符串为:Hello World! 加密的结果是:ed076287532e86365e841e92bfc50d8c. ' 验证哈希... ' 哈希值是相同的。