摘要:本文主要向大家介绍了Python语言入门的内建模块base64,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助。
本文主要向大家介绍了Python语言入门的内建模块base64,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助。
有时候,我们用noepad++或者记事本打开图片或者程序等文件的时候会显示大量的乱码,主要原因是这些文件编码的时候并不是字符串编码的。如果我们想把这些文件正常显示为字符,这个时候就可以用到base64,它就是一种编码、解码的规则。
正式介绍一下base64的原理:
(1)准备一个包含64个字符的数组:
['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/']
(2)对二进制数据进行处理,每3个字节一组,一共是3x8=24bit,划为4组,每组正好6个bit:2^6 = 64,刚好可以用来索引(创造这个规则的人真是聪明)。如果字符数量不是3的整数倍,在最后补上0x/00,并用=或者==来表示。
所以,Base64编码会把3字节的二进制数据编码为4字节的文本数据,长度增加33%,好处是编码后的文本数据可以在邮件正文、网页等直接显示。
还是实例具有说服力:
In [1]: import base64
In [2]: string1 = base64.b64encode(b'nihaoa')
In [3]: string1Out[3]: b'bmloYW9h'
In [4]: string2 = base64.b64encode(b'nihao')
In [5]: string2Out[5]: b'bmloYW8='
In [6]: string3 = base64.b64encode(b'niha')
In [7]: string3Out[7]: b'bmloYQ=='
第一个刚好是3的整数倍,第二个差一个,所以补了=,第三个差2个所以补了2个==
由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数,所以又有一种”url safe”的base64编码,其实就是把字符+和/分别变成-和_:
>>> base64.b64encode(b'i\xb7\x1d\xfb\xef\xff') b'abcd++//' >>> base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff') b'abcd--__' >>> base64.urlsafe_b64decode('abcd--__') b'i\xb7\x1d\xfb\xef\xff'
base64还可以自己定义字符顺序,这样就可以用来加密了,有兴趣可以自己玩一把。
以上就介绍了Python的相关知识,希望对Python有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言Python频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号