Base64编码

在扩展的ASCII码中,每个字符用一个字节表示,在不考虑正负号情况下,一个字符可表示的范围是(0x00~0xFF),其中0~31以及127~255都是不可打印字符。但在传输不可打印字符时,可能出现字符丢失或转义错误的情况。

注意:Base码都要先转换为十进制数的ASCII码或十六进制的ASCII码,然后再转换为二进制数。比如一个文本为A,那么:A对应的ASCII十进制数是65,那么先转换为ASCII码,然后再转换为二进制数。

把不可转义字符ASCII码转换为可打印字符,Base64编码就是这样的一种转换方式。

Base64编码组成:大写字母、小写字母、数字、+或/、等号。这些都可以有

Base64编码每4位一组,Base64编码中,最多只有两个等号,当发现有等号的编码时,不用怀疑,就是Base64编码,Base64编码的等号数量为:0或1或2。1个等号隐藏2个比特信息,2个等号隐藏4个比特信息

Base64编码后的字符串长度一定会被4整除,包括用作后缀的等号;如果明文字符数不能被3整除,余1时,1个字符就转换为2个,补两个等号,共4个字符;余2时,2个字符会转换为3个字符,补1个等号。

归根结底一句话:经过Base64编码后的字符后的字符串长度一定会被4整除 (包括后缀等号)

Base64编码:

Base64编码流程:

1.将ASCII码字符串根据ASCII码对照表转换为八位二进制数值

2.把二进制数值按每6位进行划分

3.然后6位二进制转化为十进制数根据对照表找到Base64编码字符

举例:

这里举了三个字母大写M,小写a和n

在ASCII编码中,M,a,n对应的编码十进制数为:77,97,110

然后把77,97,110转换为8位二进制数,转换后,将这24位二进制数划分为6位一组,再转换为十进制数,对照Base64编码的数。

但是如果当字符串长度不是3的倍数,那么ASCII编码转换为二进制数就不能划分为每6位一组了,也就不能编码为Base64,这样情况的话,就需要用0补位,如果6位全是0的话,就用等号(=)来表示

归根结底:如果ASCII编码是3位数,则不需要补0,转换为2进制数,分为6为一组即可求出Base64编码。如果ASCII编码是2位或1位,转换后的二进制数是不够24位的,则需要转换后的2进制数后加0,知道加到24位能让base64组成4位一组,如果有一组Base64编码的6位二进制数全为0,那么就用等号代替

base64的编码具有很高的辨识度,很多时候的base64编码后都会携带等号

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值