工作中,遇到了文件导出场景,需要将文件二进制流,转为 base64 编码,但是我一直没有较为深入的了解过。 目前重学整理一些
定义
- 是一种编码格式用来将二进制,转化为 64进制,并用ASCII表示
- 编码后的数据大小通常会比原始数据大约 33%。这是因为每 3 字节的数据会转换为 4 个 Base64 字符,导致数据膨胀
- 仅仅支
- 持 base64 编码格式的环境
- 不可读
应用场景
- 文本协议中,传输数据,很多场景只能用文本,所以需要将二进制转换为base 64 编码
- 存储数据:因为字符串更容易存储和检索。
- 并非加密算法,不涉及任何加密协议, 算法,其实并不具备安全性
原理 (待解读
Base64 字符表由 64 个字符组成,包括大小写字母、数字和两个特殊字符(通常是 "+" 和 "/",或者 "-" 和 "_")。Base64 编码步骤大致可总结如下:
- 将原始数据划分为连续的 3 字节组(共 8bit*3 = 24 位);
- 将每个 3 字节组拆分为四个 6 位的片段;
- 根据 Base64 字符表将这些 6 位片段映射为相应的 ASCII 字符。
- 如果原始数据长度不是 3 字节的倍数,则填充 0 直到为 3 的倍数(最后可能会有一个或两个填充字符 "=")