base64编码原理之python应用

base64产生原因?

先看ascii码的图片
asciii
scii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。

1.#ascii与base64怎么对应

因为我们知道ascii是8bit可以表示256个字符,而base64为6bit,。人们总是会有办法的,我们通过计算可知
8bit 00000000 00000000 00000000
6bit 000000 000000 000000 000000
可以看到,ascii 出3个字节(24位)base64出4个字节刚好可以对应于是
例如:
字符串 a b c
ASCII 97 98 99
8bit 01100001 01100010 01100011
6bit 011000 010110 001001 100011
十进制 24 22 9 35
对应编码 Y W J j

2.那么问题来了,我就一个字符不够24位咋办?

现在还有一点小问题,当转换到最后, 最后的字符不足3个字符咋办, 如果不足三个字符的话,我们直接在最后添加=号即可, 具体可以参考以下两个字符串转换案例:
在这里插入图片描述

3.#助记

就好比1 2 3 4 a b 六个数,其中a b 不能网络认出,容易出错,这个时候,想办法用现有的可以被认出的来代替他们,好比a用12代替 34代替b,那么传输的时候就可以通过传输来表示了,1 2 3 4 12 34。有人说那万一我真想传12你却当成了a怎么办,(个人理解,这个时候可以通过传输时间,好比,我一次性给你传12代表a 当分开1和2传输隔0.5秒内为整数12超过则代表1和2。也许是这样区分的吧,类似这样的。)

python实现

直接看代码
运行结果编码与解码过程为

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值