C# 变量大于字节大小,为什么?

C# 变量大于字节大小,为什么?,c#,C#,我有一个处理来自Base64String的的代码,如下所示: string hashValue = "4Nhuu2LRLntxkUs8Nb0DzL84GRgi5AWhsf+fhfiy6BwTNiM9UUZSdFfWhkCond9hkBBZOA=="; // trying to convert the above string in to bytes. byte[] toBytes = Convert.FromBase64String(hashValue); 现在,在“局部变量”窗口中,toBy

我有一个处理来自Base64String的
的代码,如下所示:

string hashValue = "4Nhuu2LRLntxkUs8Nb0DzL84GRgi5AWhsf+fhfiy6BwTNiM9UUZSdFfWhkCond9hkBBZOA==";
// trying to convert the above string in to bytes.
byte[] toBytes = Convert.FromBase64String(hashValue);
现在,在“局部变量”窗口中,toBytes
显示了以下值

toBytes {byte[52]}  byte[]
[0] 224 byte
[1] 216 byte
[2] 110 byte
[3] 187 byte
[4] 98  byte
[5] 209 byte
[6] 46  byte
[7] 123 byte
[8] 113 byte
[9] 145 byte
[10]    75  byte
[11]    60  byte
[12]    53  byte
[13]    189 byte
[14]    3   byte
[15]    204 byte
[16]    191 byte
[17]    56  byte
[18]    25  byte
[19]    24  byte
[20]    34  byte
[21]    228 byte
[22]    5   byte
[23]    161 byte
[24]    177 byte
[25]    255 byte
[26]    159 byte
[27]    133 byte
[28]    248 byte
[29]    178 byte
[30]    232 byte
[31]    28  byte
[32]    19  byte
[33]    54  byte
[34]    35  byte
[35]    61  byte
[36]    81  byte
[37]    70  byte
[38]    82  byte
[39]    116 byte
[40]    87  byte
[41]    214 byte
[42]    134 byte
[43]    64  byte
[44]    168 byte
[45]    157 byte
[46]    223 byte
[47]    97  byte
[48]    144 byte
[49]    16  byte
[50]    89  byte
[51]    56  byte

我的问题是,
hashValue
大约是72个长字符串,当转换为
toBytes
时,为什么显示大小为52?我已经通过了很多渠道来处理这个问题,但仍然无法解决这个问题。感谢您的帮助。

因为在Base64中,每4个编码字符代表3个字节(技术上为3个八位字节)。

因为在Base64中,每4个编码字符代表3个字节(技术上为3个八位字节)。

它们都是不同的东西

当您将字节数组转换为其base64表示形式时,实际上您所做的是对二进制值进行文本编码,在本例中为字节[]


您在问题中比较的是base64表示的字符串长度与源字节数组的长度,这与编码值完全不同。

它们都是不同的东西

当您将字节数组转换为其base64表示形式时,实际上您所做的是对二进制值进行文本编码,在本例中为字节[]

您在问题中比较的是base64表示的字符串长度与源字节数组的长度,这与编码值完全不同