Patrick

Patrick

  • NA
  • 12
  • 0

VB6 to C#.NET issue

Feb 4 2008 10:49 AM

I have a string that gets encrypted using VB6 and gets sucessfully decrypted using VB6 in other places. However, when I try to decrypt the string in C# I can get the letters to decrypt fine, but numbers and symbols dont. The code follows:

VB6 Encrypt:

Public Function SimpleEncode(sInputString) As String

Dim sOutputString As String
Dim iStringIndex As Integer
Dim iStringLength As Integer
Dim sCurChar As String
Dim sRandomChar As String

On Error GoTo SimpleEncode_Error

Randomize
iStringLength = Len(sInputString)
For iStringIndex = 1 To iStringLength
sCurChar = Mid(sInputString, iStringIndex, 1)
sOutputString = sOutputString & Chr((Asc(sCurChar) + 100) Mod 256) & Chr(Int(256 * Rnd))
Next

SimpleEncode = sOutputString

On Error GoTo 0
Exit Function

SimpleEncode_Error:

Call ErrHandler(DoLogging, "Error " & Err.Number & " (" & Err.Description & ") in procedure SimpleEncode of Module ModGlobalProcs")


End Function


VB6 Decrypt:

Public Function SimpleDecode(sInputString) As String

Dim iStringIndex As Integer
Dim iStringLength As Integer
Dim sCurChar As String
Dim sRandomChar As String
Dim sOutputString As String

On Error GoTo SimpleDecode_Error

iStringLength = Len(sInputString)
For iStringIndex = 1 To iStringLength
If (iStringIndex Mod 2 = 1) Then ' only process even characters
sCurChar = Mid(sInputString, iStringIndex, 1)

sOutputString = sOutputString & Chr(Abs(Asc(sCurChar) - 100) Mod 256)
End If
Next

SimpleDecode = sOutputString

On Error GoTo 0
Exit Function

SimpleDecode_Error:

Call ErrHandler(DoLogging, "Error " & Err.Number & " (" & Err.Description & ") in procedure SimpleDecode of Module ModGlobalProcs")


End Function


C# Decrypt:

public static string DecodePassword(string sInputString)

      int iStringIndex, iStringLength; 
      string sCurChar; 
      string sOutputString = ""; 

      iStringLength = sInputString.Length; 
      for(iStringIndex = 0; iStringIndex < iStringLength; iStringIndex++) 
      { 
            if(iStringIndex % 2 == 0) 
            { 
                  sCurChar = sInputString.Substring(iStringIndex, 1); 

                  sOutputString = sOutputString + (Char)(Math.Abs((int)sCurChar[0] - 100) % 256); 
            } 
      }    
      return sOutputString;
}


Does anyone know why I cannot get this to work?


Answers (5)