我已经尝试了大约4个小时,想让我的vb.NET MD5函数生成与PHP相同的哈希值。
这是我的vb.net函数:
Public Function MD5(ByVal input As String) As String
Dim x As New System.Security.Cryptography.MD5CryptoServiceProvider()
Dim bs As Byte() = System.Text.Encoding.UTF8.GetBytes(input)
bs = x.ComputeHash(bs)
Dim s As New System.Text.StringBuilder()
For Each b As Byte In bs
s.Append(b.ToString("x2").ToLower())
Next
Dim hash As String = s.ToString()
Return hash
End Function
"A3f4yoJz" 的 vb.NET MD5 函数会产生以下结果:
77f366330b7d65d451a96d38009cf06b"
但PHP会产生以下结果:
5e9000c4f54e403484889df696151b9c
然而,某些字符串(例如“paSsword1”)的哈希运算完全正常。
有任何想法吗?我已经尝试了多种vb.net中的MD5方法。我无法更改PHP中的工作方式,因为我正在编写一个与商业应用程序接口的库 - 我只需要生成相同的哈希值!
谢谢,
汤姆