我试图将字节数组转换为字符串,然后在以后的时间将那些字符串转换回字节数组,但是我得到了一些不一致的结果。
var salt = System.Text.Encoding.UTF8.GetString(encryptedPassword.Salt);
var key = System.Text.Encoding.UTF8.GetString(encryptedPassword.Key);
...
var saltBytes = System.Text.Encoding.UTF8.GetBytes(salt);
var keyBytes = System.Text.Encoding.UTF8.GetBytes(key);
在这种情况下,原始的salt和key均为byte [20],但新的不相同(salt为byte [36],key为byte [41],两者的值完全不同)。
基本上是@DourHighArch所说的。您可以使用string-> binary-> string,但是不能期望使用文本编码可以使用binary-> string-> binary。
对于您正在做的事情,您可能想要使用诸如base64编码之类的方法。所以你可以这样写:
var salt = Convert.ToBase64String(encryptedPassword.Salt);
var key = Convert.ToBase64String(encryptedPassword.Key);
...
var saltBytes = Convert.FromBase64String(salt);
var keyBytes = Convert.FromBase64String(key);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句