base64编码是把字符串转为二进制后按照一定的分组、补位、十进制转换后,对照base64编码表而生成的编码算法。base64编码是可逆的,可以逆向解码生成明文。base64编码起初是为了解决电子邮件中不能直接使用非ASCII码字符的规定问题。base64编码常用于电子邮件加密、数据加密、base64规避反垃圾邮件和图片、文件的网络传输。
一、base64编码原理流程图二、base64编码表索引
对应字符
索引
对应字符
索引
对应字符
索引
对应字符
0
A
17
R
34
i
51
z
1
B
18
S
35
j
52
0
2
C
19
T
36
k
53
1
3
D
20
U
37
l
54
2
4
E
21
V
38
m
55
3
5
F
22
W
39
n
56
4
6
G
23
X
40
o
57
5
7
H
24
Y
41
p
58
6
8
I
25
Z
42
q
59
7
9
J
26
a
43
r
60
8
10
K
27
b
44
s
61
9
11
L
28
c
45
t
62
+
12
M
29
d
46
u
63
/
13
N
30
e
47
v
14
O
31
f
48
w
15
P
32
g
49
x
16
Q
33
h
50
y
字符串:"zixuephp.net"
1.把字符串每3个字符为一组,取其ascii编码,如果是中文取其unicode utf-8 16进制编码。(ascii编码对照表)
zix uep hp. net -------------------------------------------------------- //每3个字符为1组,这里4组 122 105 120 117 101 112 104 112 46 110 101 116
2.把ascii编码的10进制值转换成8位二进制,不足8位前面补0。
122 105 120 117 101 112 104 112 46 110 101 116 ---------------------------------------------------------------------------------------------------------------------- 01111010 01101001 01111000 01110101 01100101 01110000 01101000 01110000 00101110 01101110 01100101 01110100
3.把二进制以每6位为一组组成新数据,并转换成10进制。如果没有6位,小于3位以0代替,如果有剩下的空组,以"="代替结果。
01111010 01101001 01111000 01110101 01100101 01110000 01101000 01110000 00101110 01101110 01100101 01110100 ---------------------------------------------------------------------------------------------------------------------//6位新分组 011110 100110 100101 111000 011101 010110 010101 110000 011010 000111 000000 101110 011011 100110 010101 110100 ---------------------------------------------------------------------------------------------------------------------//2转10进制 30 38 37 56 29 22 21 48 26 7 0 46 27 38 21 52
4.对应base64编码对照表获取对应字符
30 38 37 56 29 22 21 48 26 7 0 46 27 38 21 52 ------------------------------------------------------------------------------------------------------------ e m l 4 d W V w a H A u b m V 0
最后base64字符串为:
eml4dWVwaHAubmV0
四、其他举例1.字符串;"ABCD",每3个字符为一组,少两组末尾补“==“,每6位一新组时不够3位补0,对应值A。如图:
2.中文的base64编码,字符串:“自学网”,
字符串先转16进制为:
e887aa e5ada6 e7bd91最后按照上面步骤转换成二进制->6位分新组->转10进制->base64对照表->输出base64编码。
//base64编码结果 6Ieq5a2m572R测试工具:
字符串转16进制工具
进制互转工具
base64编码解码工具
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)