2011-08-20 5 views
153

나는이 다음 Base64로 문자열을 "해독"하는 것을 시도하고있다 :base64 인코딩 된 문자열을 어떻게 디코딩합니까?

OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIAQxALBtZAwUeOzcdcUEeW0dMO1kbPElWCV1ISFFKZ0kdWFlLAURPZhEFQVseXVtPOUUICVhMAzcfZ14AVEdIVVgfAUIBWVpOUlAeaUVMXFlKIy9rGUN0VF08Oz1POxFfTCcVFw1LMQNbBQYWAQ ==

이 내가 문자열 자체에 대해 알고 무엇을 :

  1. 원래 문자열은 먼저 다음 코드를 통과 :

    private static string m000493(string p0, string p1) 
    { 
        StringBuilder builder = new StringBuilder(p0); 
        StringBuilder builder2 = new StringBuilder(p1); 
        StringBuilder builder3 = new StringBuilder(p0.Length); 
        int num = 0; 
    Label_0084: 
        while (num < builder.Length) 
        { 
         int num2 = 0; 
         while (num2 < p1.Length) 
         { 
          if ((num == builder.Length) || (num2 == builder2.Length)) 
          { 
           MessageBox.Show("EH?"); 
           goto Label_0084; 
          } 
          char ch = builder[num]; 
          char ch2 = builder2[num2]; 
          ch = (char)(ch^ch2); 
          builder3.Append(ch); 
          num2++; 
          num++; 
         } 
        } 
        return m0001cd(builder3.ToString()); 
    } 
    

    코드의 p1 부분은 문자열 "_p0lizei."으로되어 있습니다.

  2. 그것은 다음 코드에 의해 Base64로 문자열로 변환

    :

    private static string m0001cd(string p0) 
    { 
        string str2; 
        try 
        { 
         byte[] buffer = new byte[p0.Length]; 
         str2 = Convert.ToBase64String(Encoding.UTF8.GetBytes(p0)); 
        } 
        catch (Exception exception) 
        { 
         throw new Exception("Error in base64Encode" + exception.Message); 
        } 
        return str2; 
    } 
    

이 문제는 원래 문자열, 내가 Base64로 문자열을 디코딩 어떻게 내가 알 수 있도록이다 무엇 ?

+0

"왜"는 기존 항목을 지원할 때 일반적으로 관련이 없지만, 알아야 할 사항은 ... 원래 문자열 Base64가 처음 엔 인코딩 된 이유는 무엇입니까?! ?? Base64는 일반적으로 바이너리를 XML 또는 JSON에 삽입하기위한 텍스트 기반의 이식 가능한 버전으로 변환하는 데 사용됩니다. 문자열을 인코딩 된 문자열로 변환하는 것이 아니라 웹 서비스 계층을 거쳐 이동할 수 있습니다. – barrypicker

답변

422

간단한은 :

byte[] data = Convert.FromBase64String(encodedString); 
string decodedString = Encoding.UTF8.GetString(data); 
+9

이 답변을 완료하려면 Jerry Nixon이 [great post] (http://blog.jerrynixon.com/2014/11/reading-and-writing-base64-in-windows.html)를 가지고 있습니다. – orad

51

m000493 방법은 XOR 암호화의 어떤 종류를 수행 할 것으로 보인다. 즉, 텍스트를 암호화하고 해독하는 데 동일한 방법을 사용할 수 있습니다. 당신이해야 할 모든 역 m0001cd입니다 : return m0001cd(builder3.ToString());

string p0 = Encoding.UTF8.GetString(Convert.FromBase64String("OBFZDT...")); 

string result = m000493(p0, "_p0lizei."); 
// result == "gaia^unplugged^Ta..." 

return builder3.ToString();로 변경되었습니다.

+0

고마워요, 이것은 제가 찾고 있던 대답 일뿐입니다. 나는 내 머리카락을 잡아 당기기에 가까웠다. p – Rickard

+31

@ 리카르드 : 왼쪽에있는 답 옆에있는 체크 표시를 클릭하여 문제를 해결하는 대답을 "수락"할 수있다. – dtb

+2

5 년 반 만에 받아 들여주세요. – Mardoxx

관련 문제