码迷,mamicode.com
首页 > 其他好文 > 详细

Base64 编码与解码详解

时间:2020-12-01 12:05:40      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:nfa   keyword   模块   表格   搜索   bsp   英文   二进制   图片   

Base64 是基于 64 个可打印字符 A-Z、a-z、0-9、+、/ 来表示二进制数据的表示方法,常用于数据在网络中的传输。本篇将分别介绍其编码、解码以及实际运用。

 

Base64 编码

Base64 本质是一种将二进制转为文本的方案。基本规则如下:

  • 编码时候选用 64 (大小写英文字母,数字,+ /)个字符以及用作补位的=来表示
  • 在编码的时候,将3个字节变为4个字节,4个字节的高两位都用 00 来填充,后 6 位来表示 64 个字符。

以一个实际的例子 "YOU" 为例,其编码过程如下:

技术图片
由上表格可知 "YOU"对应的 Base64 编码为:"WU9V"。

对于要待编码的字符数如果不是 3 的倍数时候,会用 0 去填充,编码出来后用 = 号表示,如: "ME" 其编码如下:
技术图片

 

Base64 解码

将 4 个字节变为 3 个字节;

  • 将 24 bit 左移 16 位,与 255 进行与操作,获得第一个字符,
  • 将 24 bit 左移 8 位,与 255 进行与操作,获得第二个字符,
  • 将 24 bit 与 255 进行与操作,获取第三个字符

资源搜索网站大全 https://www.renrenfan.com.cn

Base64 实现与运用场景

在 Node 中提供 Buffer 模块,可以进行二进制或者字符与 Base64 的想换转换,其代码如下:

const buf2 = Buffer.alloc(2);
buf2.write("M", 0);
buf2.write("E", 1);
buf2.toString("base64"); //TUU=
// base64 解码
const decodeBase64 = new Buffer("TUU=", "base64").toString(); //ME 

Base64 有着广泛的使用,如:

  • 对不支持二进制传输的场景, 将二进制数据编码成 Base64 传输给服务器
  • Base64 编码图片
  • MIME, 电子邮件系统中使用 Base64 编码后传输

Base64 编码与解码详解

标签:nfa   keyword   模块   表格   搜索   bsp   英文   二进制   图片   

原文地址:https://www.cnblogs.com/xiaonian8/p/14041669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!