浅析Base64
Base64是什么
Base64是一种二进制数据的表示方法,基于64个可打印字符。每6个比特为一个单元,对应一个可打印字符。例如,3个字节有24比特,对应4个Base64单元,即三个字节可由四个可打印字符表示。
值得注意的是Base64不是加密算法,其仅仅是一种编码方式
注:一个ASCII码字符通常用1个字节来表示
Base64怎么编码
1、原始数据每三个字节作为一组,每个字节8个bit,共24bit
2、将24个bit分为四组,每组6个bit
3、每组前补00,补成四组8个bit
4、根据Base64码表得到对应符号
Base64使用到的64个字符:
A-Z
26个a-z
26个0-9
10个+
1个/
1个
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w |
1 | B | 17 | R | 33 | h | 49 | x |
2 | C | 18 | S | 34 | i | 50 | y |
3 | D | 19 | T | 35 | j | 51 | z |
4 | E | 20 | U | 36 | k | 52 | 0 |
5 | F | 21 | V | 37 | l | 53 | 1 |
6 | G | 22 | W | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | I | 24 | Y | 40 | o | 56 | 4 |
9 | J | 25 | Z | 41 | p | 57 | 5 |
10 | K | 26 | a | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | M | 28 | c | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | O | 30 | e | 46 | u | 62 | + |
15 | P | 31 | f | 47 | v | 63 | - |
关于”=”
“=”用来补充,以满足分组条件
0neqiu的Base64编码为MG5lcWl1
而0neqi的Base64编码为MG5lcWk=
使得l1变为了k=
[注]: 不足3的整数倍的 缺一个字符补一个,缺两个补两个,不足的部分末尾会被00/0000填充
Base64 DataURI 格式
有时你会发现web页面传给你的base64字符串前面有类似下面的东东。
1 data:image/jpeg;base64, /9j/4AA...这是DataURI,大部分浏览器支持直接打开这类二进制数据,但是我们要格外注意,如果你只是想要真实的Base64内容就需要取
,
后边的内容
引用文章:
让你彻底理解Base64算法(Base64是什么,Base64解决什么问题,Base64字符串末尾的=是什么) - 知乎