2012-06-20 2 views
0

순 VB에서이 코드는이 방법으로 암호화 :내가 반사경</p> <p>모든 문자열과 vb.net 응용 프로그램을 디 컴파일 한

"j" & ChrW(354) & ChrW(623) & ChrW(868) 
:이 방법은 같은 입력 문자열을 수신

Public Shared Function smethod_0(ByVal string_0 As String) As String 
    Dim length As Integer = string_0.Length 
    Dim chArray As Char() = New Char(length - 1) {} 
    Dim i As Integer 
    For i = 0 To chArray.Length - 1 
     Dim ch As Char = string_0.Chars(i) 
     Dim num3 As Byte = CByte((ch Xor (length - i))) 
     Dim num4 As Byte = CByte(((ch >> 8) Xor i)) 
     chArray(i) = DirectCast(((num4 << 8) Or num3), Char) 
    Next i 
    Return String.Intern(New String(chArray)) 
End Function 

그리고 읽을 수있는 문자열을 반환합니다.

vb.net 또는 C#에서이 코드를 어떻게 변환합니까?

xor가 char/int 조합에 대해 정의되어 있지 않으므로 Vb.net 컴파일러에서이 코드가 올바르지 않다고 불평합니다.

+1

C#을 출력 이상 반사경을 전환하십시오 - 그것은 옆 이것은 강력한 암호화 될 가능성이 있다는 사실은 VB.NET – Polynomial

+8

보다 더 정확한 C# 코드를 생성하는 경향이있다 (만약에 누군가가 있다면) ** 나는 someones 코드를 빌려 오기가 무례한 경향이 있습니다. VB가 당신에게 원래의 코드를달라고 부탁합니다. - 그가 계속해서 글쓰기를 거부한다면! – Carsten

답변

0

C# 버전 (교육용 이유 - 가능한 한 유사한 코드 유지) :이 방법으로 해결 한

public static string encrypt(string s) 
{ 
    int length = s.Length, i = 0; 
    char[] chArray = new char[length]; 
    byte b1, b2; 
    char ch; 
    for (i = 0; i <= chArray.Length - 1; i++) 
    { 
     ch = s[i]; 
     b1 = Convert.ToByte((ch^(length - i))); 
     b2 = Convert.ToByte(((ch >> 8)^i)); 
     chArray[i] = (char)((b2 << 8) | b1); 
    } 
    return string.Intern(new string(chArray)); 
} 
+0

line b1 = Convert.t ((ch^(length - i))); 이 오류를 반환하십시오. 부호없는 바이트의 값이 너무 크거나 작음 – marino

+0

인코딩하려는 문자열이 255자를 초과하면이 오류가 발생합니다. 찾은 코드는 짧은 길이의 문자열입니다. 큰 문자열은 처음에는 짧은 문자열로 분할해야합니다. –

+0

이 방법으로 해결했습니다 : – marino

0

을 :

public static string encrypt(string string_0) 
    { 
     int length = string_0.Length; 
     char[] chArray = new char[length]; 
     for (int i = 0; i < chArray.Length; i++) 
     { 
      char ch = string_0[i]; 
      byte num3 = (byte)(ch^(length - i)); 
      byte num4 = (byte)((ch >> 8)^i); 
      chArray[i] = (char)((num4 << 8) | num3); 
     } 

     File.AppendAllText("decript.txt", Environment.NewLine + string_0 + " = " + string.Intern(new string(chArray))); 

반환 string.Intern (새 문자열 (chArray)); 도움을

} 

감사