是否可以从byte []转换为base64string并返回

时间:2010-09-10 12:28:45

标签: c# .net

我试过了:

Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")));

Console.WriteLine(Convert.ToBase64String(Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes("hi")))));

我得到了不同的结果,虽然我认为它应该是相同的

4 个答案:

答案 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

如此分解,应该清楚为什么你不希望这些导致相同的输出。通过超长函数链进行混淆。