2009-10-29 107 views
0

我需要幫助轉換到這個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)。

+0

MD5是散列函數,從一個任意長度的消息產生一個128位的數字。從哈希值中「解密」原始消息是不可能的,但是您可以找到一組哈希值相同的消息(哈希碰撞),其中之一將是原始消息。 – geofftnz 2009-10-29 21:30:29

回答

1

而不是轉換上述子程序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); 

由於它的本質是一個散列,你不能解密一個散列,你只能散列它並將它與存儲的散列進行比較。

當然,我有鏈接到上彩虹表的編碼恐怖後和鹽析您的散列:

Coding Horror: Rainbow Hash Cracking

+0

哦我看到謝謝! – lab12 2009-10-29 21:35:07