打开/关闭菜单
切换首选项菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Base64:修订间差异

来自迷雾wiki
创建页面,内容为“ = base 64 = == 基本介绍 == base 64是一种基于64个可打印字符来表示二进制数据的方法,是8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息 == 编码规则 == Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3x8=4x6=24),然后把6Bit再添两位高位0,组成四个8Bit的字节,并按照base64转换表转换成字符串。当要编码的字节数不能被3整除时,如…”
 
无编辑摘要
 
(未显示同一用户的5个中间版本)
第1行: 第1行:
= base 64 =
== 基本介绍 ==
== 基本介绍 ==
base 64是一种基于64个可打印字符来表示二进制数据的方法,是8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息
base 64是一种基于64个可打印字符来表示二进制数据的方法,是8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息
第8行: 第5行:
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3x8=4x6=24),然后把6Bit再添两位高位0,组成四个8Bit的字节,并按照base64转换表转换成字符串。当要编码的字节数不能被3整除时,如多出2个字节,这时可以使用以下方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。在编码后的Base64文本后加上一个或两个“=”号,代表补足的字节数
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3x8=4x6=24),然后把6Bit再添两位高位0,组成四个8Bit的字节,并按照base64转换表转换成字符串。当要编码的字节数不能被3整除时,如多出2个字节,这时可以使用以下方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。在编码后的Base64文本后加上一个或两个“=”号,代表补足的字节数
{| class="wikitable"
{| class="wikitable"
|+标准的 Base64 索引表
! colspan="15" |base64的转换表
|-
!十进制
!十进制
!二进制
!二进制
第248行: 第246行:
|
|
|}
|}
以上为base64的转换表
== 简单示例 ==
== 简单示例 ==
如上图所示,Man (3字节)编码的结果为 TWFu(4字节),很明显经过 base64 编码后体积会增加 1/3。Man 这个字符串的长度刚好是 3,我们可以用 4 个 base64 单元来表示。
{| class="wikitable"
 
!文本
如上图所示,字符 A 经过 base64 编码后的结果是 QQ==,该结果后面的两个 = 代表补足的字节数。
| colspan="8" |'''M'''
 
| colspan="8" |'''a'''
如上图所示,字符串 BC 经过 base64 编码后的结果是 QkM=,该结果后面的 1 个 = 代表补足的字节数。
| colspan="8" |'''n'''
|-
!ASCII编码
| colspan="8" |77
| colspan="8" |97
| colspan="8" |110
|-
!二进制位
|0
|1
|0
|0
|1
|1
|0
|1
|0
|1
|1
|0
|0
|0
|0
|1
|0
|1
|1
|0
|1
|1
|1
|0
|-
!索引
| colspan="6" |19
| colspan="6" |22
| colspan="6" |5
| colspan="6" |46
|-
!Base64编码
| colspan="6" |'''T'''
| colspan="6" |'''W'''
| colspan="6" |'''F'''
| colspan="6" |'''u'''
|}
如上表所示,Man (3字节)编码的结果为 TWFu(4字节),很明显经过 base64 编码后体积会增加 1/3。Man 这个字符串的长度刚好是 3,我们可以用 4 个 base64 单元来表示。
{| class="wikitable"
!文本(1 Byte)
| colspan="8" |'''A'''
| colspan="8" |
| colspan="8" |
|-
!二进制位
|0
|1
|0
|0
|0
|0
|0
|1
|0
|0
|0
|0
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|-
!二进制位(補0)
|0
|1
|0
|0
|0
|0
|0
|1
|'''0'''
|'''0'''
|'''0'''
|'''0'''
| colspan="6" |留空填充
| colspan="6" |留空填充
|-
!Base64编码
| colspan="6" |'''Q'''
| colspan="6" |'''Q'''
| colspan="6" |=
| colspan="6" |=
|-
!文本(2 Byte)
| colspan="8" |'''B'''
| colspan="8" |'''C'''
| colspan="8" |
|-
!二进制位
|0
|1
|0
|0
|0
|0
|1
|0
|0
|1
|0
|0
|0
|0
|1
|1
|0
|0
| 
| 
| 
| 
| 
| 
|-
!二进制位(補0)
|0
|1
|0
|0
|0
|0
|1
|0
|0
|1
|0
|0
|0
|0
|1
|1
|'''0'''
|'''0'''
| colspan="6" |留空填充
|-
!Base64编码
| colspan="6" |'''Q'''
| colspan="6" |'''k'''
| colspan="6" |'''M'''
| colspan="6" |=
|}
如上表所示,字符 A 经过 base64 编码后的结果是 QQ==,该结果后面的两个 = 代表补足的字节数。字符串 BC 经过 base64 编码后的结果是 QkM=,该结果后面的 1 个 = 代表补足的字节数。

2025年3月4日 (二) 14:17的最新版本

基本介绍

base 64是一种基于64个可打印字符来表示二进制数据的方法,是8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息

编码规则

Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3x8=4x6=24),然后把6Bit再添两位高位0,组成四个8Bit的字节,并按照base64转换表转换成字符串。当要编码的字节数不能被3整除时,如多出2个字节,这时可以使用以下方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。在编码后的Base64文本后加上一个或两个“=”号,代表补足的字节数

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 /
填充 =

简单示例

文本 M a n
ASCII编码 77 97 110
二进制位 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
索引 19 22 5 46
Base64编码 T W F u

如上表所示,Man (3字节)编码的结果为 TWFu(4字节),很明显经过 base64 编码后体积会增加 1/3。Man 这个字符串的长度刚好是 3,我们可以用 4 个 base64 单元来表示。

文本(1 Byte) A
二进制位 0 1 0 0 0 0 0 1 0 0 0 0
二进制位(補0) 0 1 0 0 0 0 0 1 0 0 0 0 留空填充 留空填充
Base64编码 Q Q = =
文本(2 Byte) B C
二进制位 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0
二进制位(補0) 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 留空填充
Base64编码 Q k M =

如上表所示,字符 A 经过 base64 编码后的结果是 QQ==,该结果后面的两个 = 代表补足的字节数。字符串 BC 经过 base64 编码后的结果是 QkM=,该结果后面的 1 个 = 代表补足的字节数。