Estoy tratando de «decodificar» la siguiente cadena Base64:

OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIaqxalbtzawueozcdcueew0dmo1kbpelwcv1isffkz0kdwfllaurpzhefqvsexvtpouuicvhmazcfz14avedivvgfauibwvpoulaeauvmxflkiy9rgun0vf08oz1poxfftccvfw1lmqnbbqywaq==

Esto es lo que sé acerca de la propia cadena:

  1. La cadena original se pasa primero a través del siguiente código:

    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());
    }

    La p1 parte en el código que se supone que la cadena «_p0lizei.«.

  2. Entonces se convierte en una cadena Base64 por el siguiente código:

    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;
    }

La pregunta es, ¿cómo puedo decodificar la cadena Base64 para que yo pueda averiguar lo que la cadena original es?

  • Sé que el «por Qué» es generalmente irrelevante cuando se apoya legado de cosas, pero necesito saber… ¿por Qué fue la cadena original codificado en Base64 en el primer lugar?!?? Base64 es generalmente utilizado para convertir binario en un texto basado en la versión portátil para incrustar en XML o JSON – posiblemente para moverse a través de un servicio web capa, no para convertir una cadena en una cadena codificada.
InformationsquelleAutor Rickard | 2011-08-20

2 Comentarios

  1. 600

    Simple:

    byte[] data = Convert.FromBase64String(encodedString);
    string decodedString = Encoding.UTF8.GetString(data);
    • Para completar esta respuesta, Jerry Nixon tiene un gran post en este.
    • y no olvides agregar el espacio de nombres ‘el uso del Sistema.Texto»
  2. 77

    La m000493 método se parece a la realización de algún tipo de cifrado XOR. Esto significa que el mismo método puede ser utilizado tanto para cifrar y descifrar el texto. Todo lo que tienes que hacer es invertir m0001cd:

    string p0 = Encoding.UTF8.GetString(Convert.FromBase64String("OBFZDT..."));
    
    string result = m000493(p0, "_p0lizei.");
    //   result == "gaia^unplugged^Ta..."

    con return m0001cd(builder3.ToString()); cambiado a return builder3.ToString();.

    • Gracias, esta era la respuesta que estaba buscando. Estaba a punto de tirarme de los pelos :p
    • Usted puede «aceptar» una respuesta de la que se resuelve el problema haciendo clic en la marca de verificación junto a la respuesta en el lado izquierdo.
    • Por favor, no se refieren a este como «cifrado» o «descifrado». Hacer un punto para distinguir entre «cifrado» y «codificación».

Dejar respuesta

Please enter your comment!
Please enter your name here