vb.net md5加密字符串

以下是我編程時,網上覆制的,調試時發覺和我以前VB6的輸出結果有出入,我做了一點修改。   

Public Function MD5(ByVal StrSource As String, ByVal Code As Int16) As String
        '這裏用的是ascii編碼密碼原文,如果要用漢字做密碼,可以用UnicodeEncoding,但會與ASP中的MD5函數不兼容
        Dim DataToHash As Byte() = (New System.Text.ASCIIEncoding).GetBytes(StrSource)
        Dim Hashvalue As Byte() = CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"), System.Security.Cryptography.HashAlgorithm).ComputeHash(DataToHash)
        Dim i As Integer
        Dim Str_MD5 As String = ""
        Select Case Code
            Case 16  '選擇16位字符的加密結果
                For i = 4 To 11
                    Str_MD5 += Hex(Hashvalue(i)).ToLower
                Next

            Case Else   'Code錯誤時或者選擇32位字符加密時,返回全部字符串,即32位字符
                For i = 0 To Hashvalue.Length - 1

                    Str_MD5 += IIf(Hex(Hashvalue(i)).ToLower = "0", "00", Hex(Hashvalue(i)).ToLower)  '此處增加了對0的判斷,防止十六進制0時,返回0
                Next
        End Select
        MD5 = UCase(Str_MD5)
    End Function

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章