c# - decodificar - ¿Cómo decodifico una cadena codificada en base64?
longitud cadena base64 (2)
Estoy tratando de "decodificar" esta siguiente cadena Base64:
OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIAQxALBtZAwUeOzcdcUEeW0dMO1kbPElWCV1ISFFKZ0kdWFlLAURPZhEFQVseXVtPOUUICVhMAzcfZ14AVEdIVVgfAUIBWVpOUlAeaUVMXFlKIy9rGUN0VF08Oz1POxFfTCcVFw1LMQNbBQYWAQ ==
Esto es lo que sé sobre la propia cuerda:
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 parte
p1
en el código se supone que es la cadena "_p0lizei.
".Luego se convierte en una cadena Base64 mediante 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 decodifico la cadena Base64 para poder averiguar cuál es la cadena original?
El método m000493
parece realizar algún tipo de cifrado XOR. Esto significa que se puede utilizar el mismo método para cifrar y descifrar el texto. Todo lo que tienes que hacer es revertir m0001cd
:
string p0 = Encoding.UTF8.GetString(Convert.FromBase64String("OBFZDT..."));
string result = m000493(p0, "_p0lizei.");
// result == "gaia^unplugged^Ta..."
con el return m0001cd(builder3.ToString());
cambiado para return builder3.ToString();
.
Sencillo:
byte[] data = Convert.FromBase64String(encodedString);
string decodedString = Encoding.UTF8.GetString(data);