PHP和Visual Basic 2008转换
问题描述:
我需要帮助转换到这个PHP:PHP和Visual Basic 2008转换
Public Function Encrypt(ByVal text As String) As String
Dim charSet1 As String, charSet2 As String, i As Long
Dim pos As Long, encryptedChar, encryptedText
charSet1 = " [email protected]#$%^&*()_+|abcdefghijklmnopqrstuvwxyz.,-~ABCDEFGHIJKLMNOPQRSTUVWXYZ¿¡²³ÀÁÂÃÄÅÒÓÔÕÖÙÛÜàáâãäåض§Ú¥"
charSet2 = " ¿¡@#$%^&*()_+|01²³456789ÀbÁdÂÃghÄjklmÅÒÓqÔÕÖÙvwÛÜz.,-~AàáâãFGHäJKåMNضQR§TÚVWX¥Z?!23acefinoprstuxyBCDEILOPSUY"
For i = 1 To Len(text)
pos = InStr(charSet1, Mid(text, i, 1))
If pos > 0 Then
encryptedChar = Mid(charSet2, pos, 1)
encryptedText = encryptedText + encryptedChar
Else
encryptedText = encryptedText + Mid(text, i, 1)
End If
Next
Encrypt = encryptedText
End Function
从Visual Basic到PHP ...
我正在做一个文本散列东西一样呈现以上,但在PHP为我的网站..上面的代码是自制的,所以它没有像MD5或SHA1。但是,如果你们知道在Visual Basic 2008中加密和解密MD5的方法,请告诉我! (这也必须适用于PHP)。
答
而不是转换上述子程序PHP,这里是一个字符串转换为它的MD5哈希在VB.NET子程序:
Function getMD5Hash(ByVal strToHash As String) As String
Dim md5Obj As New Security.Cryptography.MD5CryptoServiceProvider
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash)
bytesToHash = md5Obj.ComputeHash(bytesToHash)
Dim strResult As String = ""
For Each b As Byte In bytesToHash
strResult += b.ToString("x2")
Next
Return strResult
End Function
在PHP中,你可以使用MD5函数:
$hashedString = md5(strToHash);
由于它的本质是一个散列,你不能解密一个散列,你只能散列它并将它与存储的散列进行比较。
当然,我有链接到上彩虹表的编码恐怖后和盐析您的散列:
+0
哦我看到谢谢! – lab12 2009-10-29 21:35:07
MD5是散列函数,从一个任意长度的消息产生一个128位的数字。从哈希值中“解密”原始消息是不可能的,但是您可以找到一组哈希值相同的消息(哈希碰撞),其中之一将是原始消息。 – geofftnz 2009-10-29 21:30:29