BASE64编码

说法一:Base64是一种用64个字符来表示任意二进制数据的方法。它是一种编码方式,而非加密方式。它通过将二进制数据转变为64个“可打印字符”,完成了数据在HTTP协议上的传输

说法二:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法

解决问题:Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协议是文本协议,所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的。因为网络传输只能传输可打印字符。什么是可打印字符?在ASCII码中规定,0~3112733个字符属于控制字符,32~12695个字符属于可打印字符,也就是说网络传输只能传输这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=

解密即为加密的逆过程。

编写不易,跪求一键三连

posted @ 2022-09-13 20:01  20221320冯泰瑞  阅读(70)  评论(0编辑  收藏  举报