python笔记:常用内建模块—base64

一、base64

    Base64 是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据

1.1 Python内置的base64可以直接进行base64的编解码:


1.2 由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数,所以又有一种"url safe"的base64编码,其实就是把字符+和/分别变成-和_:


1.3注意

1、Base64是一种通过查表的编码方法,不能用于加密,即使使用自定义的编码表也不行。

2、Base64适用于小段内容的编码,比如数字证书签名、Cookie的内容等。

3、由于=字符也可能出现在Base64编码中,但=用在URL、Cookie里面会造成歧义,所以,很多Base64编码后会把=去掉:

# 标准Base64:
'abcd' -> 'YWJjZA=='
# 自动去掉=:

'abcd' -> 'YWJjZA'

去掉=后怎么解码呢?因为Base64是把3个字节变为4个字节,所以,Base64编码的长度永远是4的倍数,因此,需要加上=把Base64字符串的长度变为4的倍数,就可以正常解码了。

1.4练习

请写一个能处理去掉=的base64解码函数:


运行:


猜你喜欢

转载自blog.csdn.net/zyckhuntoria/article/details/80993088
今日推荐