BASE64编码
说法一:Base64是一种用64个字符来表示任意二进制数据的方法。它是一种编码方式,而非加密方式。它通过将二进制数据转变为64个“可打印字符”,完成了数据在HTTP协议上的传输。
说法二:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
解决问题:Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协议是文本协议,所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的。因为网络传输只能传输可打印字符。什么是可打印字符?在ASCII码中规定,0~31、127这33个字符属于控制字符,32~126这95个字符属于可打印字符,也就是说网络传输只能传输这95个字符,不在这个范围内的字符无法传输。那么该怎么才能传输其他字符呢?其中一种方式就是使用Base64。
下面简单的书写一下我的计算步骤吧:
1.首先是查找我的名字terryfeng这九个字母对应的ASCII码(详见书上附录D):
t:116 e:101 r:114 r:114 y:121 f:102 e:101 n:110 g:103
换算为二进制:t:01110100 e:01100101 r:01110010 r:01110010 y:01111001 f:01100110 e:01100101 n:01101110 g:01100111
把他们连在一起:011101000110010101110010011100100111100101100110011001010110111001100111
再把他们分为六个一节:011101,000110,010101,110010,011100,100111,100101,100110,011001,010110,111001,100111
再对照BASE64码进行翻译:dGVycnlmZW5n
2.首先是查找我的学号20221320这8个数字对应的ASCII码(详见书上附录D):
2:2:50,0:48,2;50,2:50,1:49,3:51,2:50,0:48
换算为二进制:50:00110010,48:00110000,50:00110010,50:00110010,49:00110001,51:00110011,50:00110010,48:00110000
把他们连在一起:0011001000110000001100100011001000110001001100110011001000110000
发现总数不是六的倍数,用0在末尾补齐:001100100011000000110010001100100011000100110011001100100011000000
再把他们分为六个一节:001100,100011,000000,110010,001100,100011,000100,110011,001100,100011,000000
再对照BASE64码进行翻译:MjAyMjEzMjA=
解密即为加密的逆过程。
编写不易,跪求一键三连