【博客173】base64编码:一(编码原理)

内容: 记录一种用于以8bit为单位的二进制编码方法

base64编码的原理:

1. Base64就是基于64个可打印字符来表示二进制数据
2. 编码的规则:
   *3个字节变成4个字节(3*8 = 4*6 = 24*76个字符加一个换行符
   * 每个计算单位由原来的8位变成6位,所以还要在每组前面加两个0
   * 原文的字节数量应该是3的倍数,如果这个条件不能满足的话:
     原文剩余的字节根据编码规则继续单独转(1223;不够的位数用0补全),再用=号补满4个字节。
     这就是为什么有些Base64编码会以一个或两个等号结束的原因,但等号最多只有两个。因为一个原字
     节至少会变成两个目标字节,所以余数任何情况下都只可能是012这三个数中的一个。如果余数是
     0的话,就表示原文字节数正好是3的倍数(最理想的情况)。如果是1的话,转成2个Base64编码字符
     ,为了让Base64编码是4的倍数,就要补2个等号;同理,如果是2的话,就要补1个等号。
3.转换表:

	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 

base64意义:

1.base64编码不是一种加密方法,是一种编码方法
2.将二进制流转变成可用ascii可见符号来表示的流
3.将原来可见的字符串流变成不可直接解读的字符串流
4.由于某些系统中只能使用ASCII字符。Base64可用来将非ASCII字符的数据转换成ASCII字符

大四学生一枚,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。有喜欢C/C++,linux的同学欢迎私信一起讨论学习。

发布了214 篇原创文章 · 获赞 41 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_43684922/article/details/104721082