我试过了:
Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")));
Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")))));
我得到了不同的结果,虽然我认为它应该是相同的
答案 0 :(得分:7)
在第二行中,您没有将转换反转为Base64,只需重新应用它。
您想使用Convert.FromBase64String并说:
Console.WriteLine(
Convert.ToBase64String(
Convert.FromBase64String(
Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")))));
答案 1 :(得分:1)
错误的问题!
您正尝试两次转换为base64。您需要使用base64的转换。
答案 2 :(得分:1)
在您的帖子中,您将转换为Base64String,然后将其编码为另一个Base64String。这肯定不会给你一个结果,因为你想编码到Base64String,然后解码回你的原始值。
你的代码必须看起来像这样编码/解码:
string toEncode = "hi";
// Convert to base64string
byte[] toBytes = Encoding.UTF8.GetBytes(toEncode);
string base64 = Convert.ToBase64String(toBytes);
// Convert back from the base64string
byte[] fromBase64 = Convert.FromBase64String(base64);
string result = Encoding.UTF8.GetString(fromBase64);
答案 3 :(得分:0)
序列1:
一个。将“hi”转换为UTF
湾将UTF转换为base 64
序列2:
一个。将“hi”转换为UTF v1
湾将UTF v1转换为base 64 v1
℃。将base 64 v1转换为UTF v2
d。将UTF v2转换为base 64 v2
如此分解,应该清楚为什么你不希望这些导致相同的输出。通过超长函数链进行混淆。