Byte[]和BASE64之间的转换

一、 BASE64编码

把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是:

l 大写的A-Z

l 小写的a-z

l 数字0-9

l '+' 和 '/'

l 空白字符(包括空白、tab,换行)

l ‘=’,为填充字符,结尾处可以填充0-2个填充字符

这64个字符构成BASE64的字符集。

 

image

Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 个 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示64个值。

在原文在转换为BASE64编码时,试是以3个字节为一组转换成4字节一组的BASE64编码。如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为2字节和3字节的BASE64编码,这时编码系统应该在形成的BASE64编码最后添加上填充符”=”,保证BASE64编码长度是4的倍数。所以在BASE64编码后添加的填充符”=”可能为0-2个。

BASE64编

Byte[]和BASE64之间的转换纯粹就是表现形式的一种转换,它们之间有直接的对应关系,不涉及到使用何种代码页的问题,BASE64表达的也是字节流。

二、 Byte[]和BASE64之间的转换操作

static void Main(string[] args)

{

string factString = "中华人民共和国";

byte[] myByte;

string Base64Str;

//先把字符串按照utf-8的编码转换成byte[]

Encoding myEncoding = Encoding.GetEncoding("utf-8");

//myByte中获得这样的字节数组:228,184,173,229,141,142,228,186,186,230,176,145,229,133,177,229,146,140,229,155,189

myByte = myEncoding.GetBytes(factString);

//把byte[]转成base64编码,这个例子形成的base64编码为:"5Lit5Y2O5Lq65rCR5YWx5ZKM5Zu9"

Base64Str = Convert.ToBase64String(myByte);

//再从base64编码转成byte[],又恢复为字节数组:228,184,173,229,141,142,228,186,186,230,176,145,229,133,177,229,146,140,229,155,189

myByte = Convert.FromBase64String(Base64Str);

//用同一个Encoding对象把byte[]转成字符串:"中华人民共和国"

factString = myEncoding.GetString(myByte);

Console.WriteLine(factString);

}

转载于:https://www.cnblogs.com/liulaocai2/p/4349692.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将js中的byte数组转换base64可以通过使用btoa函数来实现。btoa函数是JavaScript中的内置函数,用于将Unicode字符串转换base64编码。 要将byte数组转换base64,可以按照以下步骤进行操作: 1. 首先,将byte数组转换为一个以逗号分隔的字符串。可以使用Array.prototype.join()方法将数组元素连接起来,并使用逗号作为分隔符。 2. 然后,将逗号分隔的字符串转换为Unicode字符串。这可以通过使用String.fromCharCode()方法和split()函数来实现。split()函数将逗号分隔的字符串分割成一个字符数组,并使用String.fromCharCode()方法将每个字符转换为Unicode字符串。 3. 最后,将Unicode字符串转换base64编码。可以使用btoa函数将Unicode字符串转换base64编码的字符串。 下面是一个示例代码: ```javascript function byteToBase64(byteArray) { // 将byte数组转换为逗号分隔的字符串 var arrayString = byteArray.join(','); // 将逗号分隔的字符串转换为Unicode字符串 var unicodeString = String.fromCharCode.apply(null, arrayString.split(',')); // 将Unicode字符串转换base64编码 var base64String = btoa(unicodeString); return base64String; } // 示例用法 var byteArray = [72, 101, 108, 108, 111]; // byte数组: [72, 101, 108, 108, 111] var base64String = byteToBase64(byteArray); console.log(base64String); // 输出: SGVsbG8= ``` 这样,就可以通过以上步骤将byte数组转换base64编码的字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值