无法将字节数组编码为UTF8,然后将其解码回字节

sds6065

我试图将字节数组转换为字符串,然后在以后的时间将那些字符串转换回字节数组,但是我得到了一些不一致的结果。

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],两者的值完全不同)。

杰克·A

基本上是@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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字节数组写入UTF8编码的文件

用Java编码可变长度utf8字节数组

Bash脚本-将编码的字符串解码为字节数组

将字节数组编码解码为字符串而不会丢失数据

如何将字符串以UTF-8编码为现有的字节数组?

将字节数组解码为字符串

将大文件读入字节数组并将其编码为ToBase64String

UWP将WriteableBitmap编码为JPEG字节数组

Java:以另一种编码方式将UTF8字符串转换为字节数组

将字节数组转换为字符串,然后再次将其返回到字节数组

Python:如何将字符串格式的(utf-8)字节数组对象解码回字符串?

如何使用BOM编码/解码UTF-16LE字节数组?

将 base64 编码的字节数组解码为(负)十进制值(Java 到 Python)

如何在Python2中将utf-8字节数组解码为字符串?

如何将UTF8字符串转换为字节数组?

如何将utf8字节数组转换为给定长度的字符串

将 UTF8 字符编码为字节表或公式

如何允许对UTF-8字节数组进行解码?

Python解码部分utf-8字节数组

将int数组转换为字节数组,将其压缩然后反转

将字节数组从编码A转换为编码B

C#utf8编码字节数组超出范围

将字节数组存储在对象中,然后将其转换为ObjectOutputStream?(卡住)

将Base64字符串解码为字节数组

将字节数组解码为最多 64 位的有符号整数

将字节数组解码为Java中已压缩的位图

字节数组是Java中有效的UTF8编码的字符串,但不是Python中的字符串

将表示为字符串的字节数组转换为字节数组

从字节数组解码分隔帧