C# 如何解码base64编码的字符串?
我正在尝试“解码”以下Base64字符串: obfzdtcpcxlckhdxcq0kmqhkph9uigyayaqxalbtzawueozccuew0dmo1kbpelwcv1sfkz0kdwllaurpzhefqvsexvtpouuicvhmazcfz14avevgfauwwvpoulaeuvmxflkiy9rgun0vf08oz1poxfftcvw1lmqnbywq== 以下是我对字符串本身的了解:C# 如何解码base64编码的字符串?,c#,encoding,base64,C#,Encoding,Base64,我正在尝试“解码”以下Base64字符串: obfzdtcpcxlckhdxcq0kmqhkph9uigyayaqxalbtzawueozccuew0dmo1kbpelwcv1sfkz0kdwllaurpzhefqvsexvtpouuicvhmazcfz14avevgfauwwvpoulaeuvmxflkiy9rgun0vf08oz1poxfftcvw1lmqnbywq== 以下是我对字符串本身的了解: 原始字符串首先通过以下代码传递: private static string m000493
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());
}
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;
}
byte[] data = Convert.FromBase64String(encodedString);
string decodedString = Encoding.UTF8.GetString(data);
m000493
方法似乎执行某种异或加密。这意味着相同的方法可用于对文本进行编码和解码。您所要做的就是反转m0001cd
:
string p0 = Encoding.UTF8.GetString(Convert.FromBase64String("OBFZDT..."));
string result = m000493(p0, "_p0lizei.");
// result == "gaia^unplugged^Ta..."
使用
返回m0001cd(builder3.ToString())代码>更改为返回builder3.ToString()代码>谢谢,这正是我想要的答案。我差点就要发疯了:p@Rickard:您可以通过单击左侧答案旁边的复选标记来“接受”解决问题的答案。请不要将其中任何一项称为“加密”或“解密”。注意区分“加密”和“编码”。我知道“为什么”在支持遗留内容时通常是不相关的,但我需要知道。。。为什么最初的字符串Base64是编码的?!??Base64通常用于将二进制文件转换为基于文本的可移植版本,以嵌入XML或JSON中-可能是为了跨web服务层移动,而不是将字符串转换为编码字符串。@barry-在更老的帖子上回答您的老问题。。。我来这里是因为我需要处理需要base64编码的字符串。为了完成这个答案,Jerry Nixon对此有自己的看法。别忘了添加名称空间“using System.Text”