ฉันพยายาม "ถอดรหัส" สตริง Base64 ต่อไปนี้:
OBFZDTcPCxlCKhdXCQ0kMQhKPh9uIgYIAQxALBtZAwUeOzcdcUEeW0dMO1kbPElWCV1ISFFKZ0kdWFlLAURPZhEFQVseXVtPOUUICVhMAzcfZ14AVEdIVVgfAUIBWVpOUlAeaUVMXFlKIy9rGUN0VF08Oz1POxFfTCcVFw1LMQNbBQYWAQ ==
นี่คือสิ่งที่ฉันรู้เกี่ยวกับสตริงตัวเอง:
สตริงเดิมถูกส่งผ่านครั้งแรกผ่านรหัสต่อไปนี้:
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.
"มันจะถูกแปลงเป็นสตริง 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 อย่างไรเพื่อที่ฉันจะได้รู้ว่าสตริงเดิมคืออะไร?
1
ฉันรู้ว่า "ทำไม" โดยทั่วไปไม่เกี่ยวข้องเมื่อสนับสนุนสิ่งที่เป็นมรดก แต่ฉันจำเป็นต้องรู้ ... ทำไมสตริงเดิม Base64 ที่เข้ารหัสในตอนแรก?!? Base64 มักใช้เพื่อแปลงเลขฐานสองเป็นข้อความแบบพกพาที่ใช้ข้อความสำหรับการฝังใน XML หรือ JSON - เป็นไปได้ที่จะย้ายข้ามชั้นบริการเว็บไม่ใช่สำหรับการแปลงสตริงเป็นสตริงที่เข้ารหัส
—
barrypicker
@barry - เพื่อตอบคำถามเก่าของคุณในโพสต์ที่เก่ากว่า ... ฉันมาที่นี่เพราะฉันต้องจัดการกับHTTP Authorization Headerซึ่งต้องใช้สตริงที่เข้ารหัส base64
—
freefaller