base64编码原理之python应用

导读:本篇文章讲解 base64编码原理之python应用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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实现

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119331.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!