工具介绍
工具简介
Base64编码(解码)工具,是一款方便快捷的字符编码工具,可以把ASCII字符串编码为Base64表示,同时也可以把Base64字符串解码(还原)为ASCII字符串。本工具还支持对Unicode字符的编码解码。
对字符进行Base64编码,常见的应用场景有:
- 在计算机领域,可统一信息传输的编码格式
- 对邮箱地址、微信号、电话号码进行Base64编码,以保护个人隐私
- 对图片进行Base64编码,以减少HTTP请求数
- 在一些应用中用来存储复杂数据(通常数据量很大)
注:对字符进行Base64编码时,是区分大小写的。也就是说,字符串
you are welcome
和You are welcome
的Base64编码结果是不一样的。
Base64简介
Base64是一组相似的二进制到文本(Binary-to-Text)的编码规则,使得二进制数据在解释成 radix-64的表现形式后能够用ASCII字符串的格式表示出来。
Base64编码普遍应用于需要通过被设计为处理文本数据的媒介上储存和传输二进制数据而需要编码该二进制数据的场景。这样是为了保证数据的完整并且不用在传输过程中修改这些数据。Base64也被一些应用和在XML中储存复杂数据时使用。
Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Char | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
Index | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Char | Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e | f |
Index | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
Char | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v |
Index | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
Char | w | x | y | z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | / |
Base64编码过程
- 将数据转化为uint8二进制
- 将转化后的二进制每六个分为一组,共有64中可能(0-63)
- 将六位一组的二进制,计算出Index(0-63),并根据上面的速对表及Index找到对应的base64字符
- 由此编码后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%。