关于BASE64编码的学习
1.什么是BASE64编码,解决什么问题
BASE64编码是一种“二进制到文本”的编码方法,它能够将给定的任意二进制数据转换(映射)为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。是将信息流(字节流)按照一定的规范,重新组合,显示出完全不相关内容的编码格式。
早前Email只被允许传送ASCII字符(不知道现在是否改善),即一个字节的低7位,也就是128种表示。于是当用各种国际字符发送消息时,势必就会出现字节的最高位是1的问题,由于健壮性(又称鲁棒性,是指软件对于规范要求以外的输入情况的处理能力)和容错性(是指软件检测应用程序所运行的软件或硬件中发生的错误并从错误中恢复的能力),有些网络设备会把首bit位置替换,原本的非ASCII码的字符,就被转换成一套ASCII码。例如用某种国际语言发送邮件,若接收方使用的设备不支持该种国际语言编码,则收到的可能会是一团乱码。而BASE64可解决这种问题。
原理
base64的编码都是按字符串长度,以每3个8bit的字符为一组,
-然后针对每组,首先获取每个字符的ASCII编码,
-然后将ASCII编码转换成8bit的二进制,得到一组3*8=24bit的字节
-然后再将这24bit划分为4个6bit的字节,并在每个6bit的字节前面都填两个高位0,得到4个8bit的字节
-然后将这4个8bit的字节转换成10进制,对照Base64编码表 (下表),得到对应编码后的字符。
(注:1. 要求被编码字符是8bit的,所以须在ASCII编码范围内,\u0000-\u00ff,中文就不行。
2. 如果被编码字符长度不是3的倍数的时候,则都用0代替,对应的输出字符为=)
2.
3.

浙公网安备 33010602011771号