时间:2021-05-22
base64模块是用来作base64编码解码的。这种编码方式在电子邮件中是很常见的。
它可以把不能作为文本显示的二进制数据编码为可显示的文本信息。编码后的文本大小会增大1/3。
闲话不说了,base64模块真正用的上的方法只有8个,分别是encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode。他们8个可以两两分为4组,encode,decode一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码;encodestring,decodestring一组,专门用来编码和解码字符串; b64encode和b64decode一组,用来编码和解码字符串,并且有一个替换符号字符的功能。这个功能是这样的:因为base64编码后的字符除 了英文字母和数字外还有三个字符 + / =, 其中=只是为了补全编码后的字符数为4的整数,而+和/在一些情况下需要被替换的,b64encode和b64decode正是提供了这样的功能。至于什 么情况下+和/需要被替换,最常见的就是对url进行base64编码的时候。urlsafe_b64encode和urlsafe_b64decode 一组,这个就是用来专门对url进行base64编解码的,实际上也是调用的前一组函数。
基本用法
首先准备一个64个字符的数组[‘A','B','C', … , ‘1', ‘2', … , ‘+']
然后对二进制数据进行处理, 每三个字节(byte)一组, 一共是3x8=24, 划为4组,每组6bit.这样我们得到4个数字作为索引, 然后查表获得相应的4个字符, 就是编码后的字符串.
如果编码的二进制数不是3的倍数怎么办,base64在\x00在末尾不足后,在代码的末尾添加1~2个=号,解码是自动去掉
会把少的字符用=号补上
print base64.b64decode(me) # print 'mink'可以解码得到原有的字符串
urlsafe_b64encode 和 urlsafe_b64decode
base64的还提供用于url的编码方法urlsafe_b64encode 和urlsafe_b64decode.
me = base64.urlsafe_b64encode('i\xb7\x1d\xfb\xef\xff')print me # print 'abcd--__'print base64.urlsafe_b64decode(me) print 'abcd++//'因为base64编码后+和-可能会出现在字符中,所以通过urlsafe的方法把+转换为-,/转化为_.
由于=字符也可能出现在Base64编码中,但=用在URL Cookie里面会造成歧义,很多Base64编码后会把=去掉.去掉=后怎么解码呢?因为Base64是把3个字节变为4个字节,所以Base64编码的长度永远是4的倍数.因此需要加上=把Base64字符串的长度变为4的倍数,就可以正常解码了.
综合示例
上面的encode函数和decode函数的参数其实还可以是文件对象的,那的象这样:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python中进行Base64编码和解码要用base64模块,代码示例:#-*-coding:utf-8-*-importbase64str='cnblogs'
Js实现Base64编码与解码Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码
php源码之将图片转化为data/base64数据流这里我们分享一个将图片转换为base64编码格式的方法:通过上面的方法转换后得到的base64编码字符串,可
java图片转base64字符串、base64字符串转图片,具体内容如下1.图片转base64字符串:/***base64编码字符串转换为图片*@paramim
在网上找到一种解决方法:复制代码代码如下:后来请教了别人,还可以用base64编码,不过base64编码不可以放在URL中,百度是这样解释的:标准的Base64