生成 MD5 哈希值 (Hash Values) 的代码实例

Imports System
Imports System.Security
Imports System.Security.Cryptography
Imports System.Text

Public Class Form1

    Private Sub btnMD5_Click1(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnMD5.Click
        Dim sSourceData As String
        Dim tmpSource() As Byte
        Dim tmpHash() As Byte

        sSourceData = Me.txtSource.Text
        'Create a byte array from source data.
        tmpSource = ASCIIEncoding.ASCII.GetBytes(sSourceData)

        'Compute hash based on source data.
        tmpHash = New MD5CryptoServiceProvider().ComputeHash(tmpSource)

        Me.txtMD5.Text = ByteArrayToString(tmpHash)

    End Sub

    Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
        Dim i As Integer
        Dim sOutput As New StringBuilder(arrInput.Length)
        For i = 0 To arrInput.Length - 1
            sOutput.Append(arrInput(i).ToString("X2"))
        Next
        Return sOutput.ToString()
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Debug.Print(Len(txtMD5.Text))
    End Sub
End Class 

提示

计算 MD5 哈希值是用 MD5CryptoServiceProvider().ComputeHash 这个方法。

由于 ComputeHash 方法需要传入的参数是 Byte 类型,而不是 String 类型。因此要将传入的数据先从字符串变成一个 Byte 数组。用 ASCIIEncoding.ASCII.GetBytes 这个函数,可以将一个字符串变成一个 Byte 数组。

用 ComputeHash 方法计算并返回一个 MD5 哈希值,该返回值也是 Byte 类型。通常我们会将这个返回值变成一个 16 进制的字符串。上面代码中 ByteArrayToString 函数的作用,就是将一个 Byte 数组转换成一个 16 进制的字符串。

StringBuilder.Append 方法进行字符串的连接。比之一般的字符串连接方法效率更高。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值