Base64 编码/解码

分类:编码 & 解码
本工具提供对字符进行 Base64 编码和解码功能,可以把指定的字符串编码成 Base64 的形式,同时也可以把 Base64 字符还原为普通字符串。本工具还支持对 Unicode 字符进行 Base64 编码。
请输入普通字符串(支持 Unicode 字符)
请输入 Base64 编码后的字符串
工具介绍

工具简介

Base64 编码(解码)工具,是一款方便快捷的字符编码工具,可以把 ASCII 字符串编码为 Base64 表示,同时也可以把 Base64 字符串解码(还原)为 ASCII 字符串。本工具还支持对 Unicode 字符的编码解码。

对字符进行 Base64 编码,常见的应用场景有:

  • 在计算机领域,可统一信息传输的编码格式
  • 对邮箱地址、微信号、电话号码进行 Base64 编码,以保护个人隐私
  • 对图片进行 Base64 编码,以减少 HTTP 请求数(本站提供了图片 Base64 编码工具,可以方便地对 .gif、.jpg、.png 等常见格式的图片进行 Base64 编码)
  • 在一些应用中用来存储复杂数据(通常数据量很大)

示例

1、普通字符串编码

输入:

We have 2 days to complete the task

Base64 编码后:

V2UgaGF2ZSAyIGRheXMgdG8gY29tcGxldGUgdGhlIHRhc2s=

2、邮箱地址编码

输入:

july.gland@example.com

Base64 编码后:

anVseS5nbGFuZEBleGFtcGxlLmNvbQ==

3、Unicode 字符编码

输入

新版APP于今晚12点上线

Base64 编码后:

5paw54mIQVBQ5LqO5LuK5pmaMTLngrnkuIrnur8=

4、带 emoji 表情的字符编码

输入:

哈哈????,河对岸有一条小狗????

Base64 编码后:

5ZOI5ZOI8J+YhO+8jOays+WvueWyuOacieS4gOadoeWwj+eLl/CfkLY=

注:对字符进行 Base64 编码时,是区分大小写的。也就是说,字符串 you are welcomeYou are welcome 的 Base64 编码结果是不一样的。

Base64 简介

Base64 是一组相似的二进制到文本(Binary-to-Text)的编码规则,使得二进制数据在解释成 radix-64 的表现形式后能够用 ASCII 字符串的格式表示出来。

Base64 编码普遍应用于需要通过被设计为处理文本数据的媒介上储存和传输二进制数据而需要编码该二进制数据的场景。这样是为了保证数据的完整并且不用在传输过程中修改这些数据。Base64 也被一些应用和在 XML 中储存复杂数据时使用。

Base64 速对表
Index0123456789101112131415
CharABCDEFGHIJKLMNOP
Index16171819202122232425262728293031
CharQRSTUVWXYZabcdef
Index32333435363738394041424344454647
Charghijklmnopqrstuv
Index48495051525354555657585960616263
Charwxyz0123456789+/

Base64 编码过程

  1. 将数据转化为 uint8 二进制
  2. 将转化后的二进制每六个分为一组,共有 64 中可能 (0-63)
  3. 将六位一组的二进制,计算出 Index (0-63),并根据上面的速对表及 Index 找到对应的 base64 字符
  4. 由此编码后 base64 长度为 4 的倍数,不足使用 = 进行填充

编码后字符尺寸的变化

每一个 Base64 字符实际上代表着 6 比特位。因此,3 字节(1 字节 = 8bit)的字符串/二进制文件可以转换成 4 个 Base64 字符(4x6 = 24bit),剩下 2 位用 00 补齐。

因此,我们可以推断,对于经过 Base64 编码之后的字符串,其尺寸比字符原始尺寸增加了大约 33.33%(即 4 / 3 = 1.33333)。如果待编码的数据很少,编码后增加的比例可能会更高。

例如:字符串 s 的长度为 1,进行 Base64 编码后是 cw==,其长度为 4,尺寸增加了 300%。

base64 命令行工具

在类 Unix 操作系统中(如:macosx 以及各大 Linux 发行版),可以通过命令行工具 base64 进行解码编码。使用方法如下:

# 编码
$ echo dute.org | base64
ZHV0ZS5vcmcK

# 解码
$ echo ZHV0ZS5vcmcK | base64 -d
dute.org

感谢使用,希望本工具能为你的工作和学习带来帮助。