Base64编码原理

  • Base64是编码方式不是加密方式
  • 标准的ASCII码 128个中96个可见字符,其余为不可见字符,为了避免不可见字符
  • 使用了64个可见字符进行编码
(1)原理

例如:Hello

  1. 先转成二进制
01001000 01100101 01101100 01101100 01101111 00000000
  1. 打乱重编码,以6个一组进行重编码,不满足的需要补0
010010 000110 010101 101100 011011 000110 111100 000000
  • 注意:为什么要6个一组,因为一共64个可见字符, 000000 转成十进制是0 ,111111 转成十进制是63,正好64个编号和64个可见字符一一对应。
  • 24 是8 和6 的最小公倍数,所以要筹够24
  1. 然后6个一组转为十进制
18 6 21 44 27 6 60 0
  • 补出来的0 结尾都要变成=号
  1. 去Base64 对照表拿出相应的字符
SGVsbG8=
(2)图解

1221855-20181211003958788-753407674.png

(3)Base64索引表

1221855-20181211004306149-1136097105.png

(4)注意事项

如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:

  • 先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。在编码后的Base64文本后加上一个或两个=号,代表补足的字节数。也就是说,当最后剩余两个八位字节(2个byte)时,最后一个6位的Base64字节块有四位是0值,最后附加上两个等号;
  • 如果最后剩余一个八位字节(1个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。

转载于:https://www.cnblogs.com/Grand-Jon/p/10099875.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值