繁体   English   中英

从字节数组转换为 base64 并返回

[英]Conversion from byte array to base64 and back

我在尝试着:

  1. 生成一个字节数组。
  2. 将该字节数组转换为base64
  3. 将该 base64 字符串转换回字节数组。

我已经尝试了一些解决方案,例如这个问题中的那些。

由于某种原因,初始字节数组和最终字节数组不匹配。 这是使用的代码:

using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
    {
         byte[] originalArray = new byte[32];
         rng.GetBytes(key);
         string temp_inBase64 = Convert.ToBase64String(originalArray);
         byte[] temp_backToBytes = Encoding.UTF8.GetBytes(temp_inBase64);
    }

我的问题是:

  1. 为什么“originalArray”和“temp_backToBytes”不匹配? (originalArray 的长度为 32,temp_backToBytes 的长度为 44,但它们的值也不同)

  2. 是否可以来回转换,如果可以,我该如何实现?

编码数组长约四分之一的原因是 base-64 编码仅使用每个字节中的 6 位; 这就是它存在的原因 - 以适合通过仅 ASCII 渠道(例如电子邮件)进行交换的方式对任意数据(可能使用零和其他不可打印字符)进行编码。

获取原始数组的方法是使用Convert.FromBase64String

 byte[] temp_backToBytes = Convert.FromBase64String(temp_inBase64);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM