最近突然想起base64编码,还没去了解过到底是怎么编码的,所以去了解了一下,在此记录一下,方便后期忘记了可以在看看。
1.base64编码怎么转换:
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
如果原来的字节最后不够3个的地方用0来补足,转换时Base64编码用=号来代替。这就是为什么有些Base64编码会以一个或两个等号结束的原因,但等号最多只有两个
例1:数字1通过编码后是多少
字符:1
对应的ASCII:49
对应的二进制:00110001
转换前:00110001 00000000 00000000(不够3个字节的补0,补了几个字节最后的编码就有几个=号)
转换后:00001100 00010000 00000000 00000000(每一个前面加两个0)
换算成对应的10进制:12 16 0 0
在参考base64的码表得到最终的值为:MQ==
2.为什么要使用base64编码
防止透传用户名和密码
用户输入的信息中如果包含国际字符或者Http头无法识别的字符,则必须将要传输的信息转为Base64,因为Base64是ASCII的子集,http协议可以识别。
下面是base64转换码表: