回 帖 发 新 帖 刷新版面

主题:[讨论]请教VB2005里的MD5加密(30分)

在vb2005里用下面代码算出的32位MD5值和http://www.chinaue.com/tool/md5/md5.htm
http://www.xmd5.org/Encrypt_cn.htm 里算出的不一样

Public Function Md5hash_String(ByVal InputString As String) As String
        Dim MD5 As String = ""
        Dim dataToHash As Byte() = (New System.Text.ASCIIEncoding).GetBytes(InputString)
        Dim hashvalue As Byte() = CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"), System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)
        Dim i As Integer
        For i = 0 To 15 
            MD5 += Hex(hashvalue(i)).ToLower
        Next
        Return MD5
    End Function
比如传入123456
代码算出的是      :e1adc3949ba59abbe56e057f2f883e
网上和工具算出的是:e10adc3949ba59abbe56e057f20f883e
请高手帮忙看看什么地方出错了,先谢谢了![em2]

回复列表 (共2个回复)

沙发

问题已解决,有和我同样问题的朋友请看这里
http://community.csdn.net/Expert/TopicView1.asp?id=5294458
谢谢大家的支持!

板凳

MD5加密方法很多,我现在用这个,可以选择加密位数。。。    

    ''' <summary>
    ''' MD5加密
    ''' </summary>
    ''' <param name="strSource">加密的字符串</param>
    ''' <param name="Code">加密位数</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    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 strMd5 As String = ""
        Select Case Code
            Case 16 '选择16位字符的加密结果
                For i = 4 To 11
                    strMd5 += Hex(hashvalue(i)).ToLower
                Next
            Case 32 '选择32位字符的加密结果
                For i = 0 To 15
                    strMd5 += Hex(hashvalue(i)).ToLower
                Next
            Case Else 'Code错误时,返回全部字符串,即32位字符
                For i = 0 To hashvalue.Length - 1
                    strMd5 += Hex(hashvalue(i)).ToLower
                Next
        End Select
        Return strMd5
    End Function

我来回复

您尚未登录,请登录后再回复。点此登录或注册