Base64编码
介绍 Base64 编码
Base64 是一种使用 64 个可打印字符来表示二进制数据的编码方式。
Base64 中的 64 个可打印字符包括:大小写字母 a - z、阿拉伯数字 0 - 9,这样共有 62 个字符,另外两个可打印字符在不同的系统中而不同。RFC 4648 标准中,另外两个可打印字符是:加号 + 、斜线 /。Base64 使用等号 = 作为填充字符。
技术是为了解决问题而生的,Base64 编码的作用是:使用 64 个可打印字符来表示二进制数据,以便二进制数据在计算机中存储、通过网络传输。
Base64 编码的规则
Base64 编码的规则是:
- 首先,将二进制数据中每 “三组 8 个二进制位” 重新分组为 “四组 6 个二进制位”;
- 然后,每组的 6 个二进制位用一个十进制数来表示。6 个二进制位可表示的十进制数的范围是 0 - 63;
- 接下来,根据 Base64 索引表,将每组的十进制数转换成对应的字符,即每组可以用一个可打印字符来表示;
"Man" 的 Base64 编码结果为 "TWFu",详细原理如下:
Base64 编码将 3 个字节编码为 4 个字符。如果要编码的字节数不能被 3 整除,最后会多出 1 个或 2 个字节,那么可以使用下面的方法进行处理:
- 先使用 0 字节值在末尾补足,使字节数能够被 3 整除,然后再进行 Base64 编码。
- 在 Base64 编码结果的末尾加上一个或两个等号 =,代表补足的字节数。
举例说明,最后剩余两个字节待补足:
举例说明,最后剩余一个字节待补足:
Base64 索引表
RFC 4648 标准的 Base64 索引表
十进制 | 二进制 | 字符 | 十进制 | 二进制 | 字符 | 十进制 | 二进制 | 字符 | 十进制 | 二进制 | 字符 | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 000000 | A | 16 | 010000 | Q | 32 | 100000 | g | 48 | 110000 | w | |||
1 | 000001 | B | 17 | 010001 | R | 33 | 100001 | h | 49 | 110001 | x | |||
2 | 000010 | C | 18 | 010010 | S | 34 | 100010 | i | 50 | 110010 | y | |||
3 | 000011 | D | 19 | 010011 | T | 35 | 100011 | j | 51 | 110011 | z | |||
4 | 000100 | E | 20 | 010100 | U | 36 | 100100 | k | 52 | 110100 | 0 | |||
5 | 000101 | F | 21 | 010101 | V | 37 | 100101 | l | 53 | 110101 | 1 | |||
6 | 000110 | G | 22 | 010110 | W | 38 | 100110 | m | 54 | 110110 | 2 | |||
7 | 000111 | H | 23 | 010111 | X | 39 | 100111 | n | 55 | 110111 | 3 | |||
8 | 001000 | I | 24 | 011000 | Y | 40 | 101000 | o | 56 | 111000 | 4 | |||
9 | 001001 | J | 25 | 011001 | Z | 41 | 101001 | p | 57 | 111001 | 5 | |||
10 | 001010 | K | 26 | 011010 | a | 42 | 101010 | q | 58 | 111010 | 6 | |||
11 | 001011 | L | 27 | 011011 | b | 43 | 101011 | r | 59 | 111011 | 7 | |||
12 | 001100 | M | 28 | 011100 | c | 44 | 101100 | s | 60 | 111100 | 8 | |||
13 | 001101 | N | 29 | 011101 | d | 45 | 101101 | t | 61 | 111101 | 9 | |||
14 | 001110 | O | 30 | 011110 | e | 46 | 101110 | u | 62 | 111110 | ||||
15 | 001111 | P | 31 | 011111 | f | 47 | 101111 | v | 63 | 111111 | / | |||
填充 | = |
参考资料
相关文章
- Android视频编码_安卓视频解码器
- 将图片转换为Base64编码字符串、解析Base64编码字符串后生成图片「建议收藏」
- vue07登陆注册--跨域请求问题+ base64编码+axios使用+面试题【v-bind和v-modul和{{}}的区别】
- ASCII编码介绍与学习总结
- Java 图片URL转Base64编码
- JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
- 【最佳实践之性能篇】编码惯例与作用域意识
- Java base64 图片编码转换详解编程语言
- php 将图片文件转成base64编码的方法详解编程语言
- PHP urldenodeur()与ldecode():对URL参数进行编码与解码
- Linux支持字符集大全:了解Linux的字符编码表(查看linux支持字符集)
- 深入探究MySQL字符集编码(mysql的字符集编码)
- Oracle中文编码指南(oracle中文怎么编码)
- 揭盖中乐视会员?康师傅饮料瓶盖编码泄露,中了也白中
- C#Base64编码
- php中json_encode中文编码问题分析
- 用unescape反编码得出汉字示例
- 查看oracle数据库的编码及修改编码格式的方法