Byte[32] 使用 Convert.ToBase64String(byteValue32) 转换为字符串,但与 Encoding.ASCII.GetBytes(string) 相反变为 byte[44]

Byte[32] converts to string with Convert.ToBase64String(byteValue32) but to go opposite the Encoding.ASCII.GetBytes(string) becomes byte[44]

所以好像转换不一样

例子

byte[] salt;  // this i hover over and see {byte[32]}  
string saltText = Convert.ToBase64String(salt);
// This saltText come out with the string

// example is that saltText = puYwD1RHO9mdrg4eakJIskcrN4wPlxzkBwjdwyJL+Eg=

这部分很好,但是我需要将它转换回来,所以我这样做了

byte[] saltArray = Encoding.ASCII.GetBytes(saltText);

// Hover over and the saltArray is saying {byte[44]}  

我是不是不懂字节? 为什么从 32 变为 44 ??

试试这个解码

var base64EncodedBytes = System.Convert.FromBase64String(salt);
var stringData = System.Text.Encoding.UTF8.GetString(base64EncodedBytes);