对字符串进行base64加解密---基于python

那年仲夏 提交于 2020-04-27 19:26:11

本文介绍Python 2.7中的base64模块,该模块提供了基于rfc3548的Base16, 32, 64编解码的接口。官方文档,参考这里

当前接口基于rfc3548的Base16/32/64编码规范,本文只介绍当前的接口

关于Base64编码格式提供了以下六种接口,便于高效灵活地实现需要的编解码工作

1.  b64encode(s, altchars = None )
2.  b64decode(s, altchars = None )
3.  standard_b64encode(s)
4.  standard_b64decode(s)
5.  urlsafe_b64encode(s)
6.  urlsafe_b64decode(s)

 

 

 

 

 其中以"*encode"结尾的方法用于将二进制串转为base64编码格式的字符串,以“*decode”结尾的方法用于将base64格式的字符串重新转为二进制串。

 

  我们详细查看前两个方法,注意到b64encode()和b64decode()接收同样形式的参数。其中 s 是要编/解码的字符串;默认参数altchars的可选值必须是长度至少两字节的字符串(第二个字符后的内容将被忽略),该方法表示在编/解码过程中将使用参数altchars中的前两个字符替换标准Base64字符集中的'+'和'/'。

  因此方法3和4中的base64.standard_b64encode(s)和base64.standard_b64decode(s)等价于base64.b64encode(s)和base64.b64decode(s)。而方法5和6中的base64.urlsafe_b64encode(s)和base64.urlsafe_b64decode(s)分别等价于base64.b64encode(s , '-_')和base64.b64decode(s , '-_'),即在编/解码过程中使用'-'和'_'替代标准Base64字符集中的'+'和'/',生成可以在URL中使用的Base64格式文本。

 

举个例子:

>>> import base64
>>> print base64.b64encode('Hello, I am Darren!') 
SGVsbG8sIEkgYW0gRGFycmVuIQ==
>>>
>>> print base64.b64decode('SGVsbG8sIEkgYW0gRGFycmVuIQ==')
Hello, I am Darren!
>>>
>>> print base64.b64encode('i\xb7\x1d\xfb\xef\xff')
abcd++// 
>>> 
>>> print base64.b64encode('i\xb7\x1d\xfb\xef\xff', '-_') 
abcd--__ 
>>> 
>>> print base64.urlsafe_b64encode('i\xb7\x1d\xfb\xef\xff') 
abcd--__ 
>>>
>>> base64.urlsafe_b64decode('adcd--__') 
'i\xb7\x1d\xfb\xef\xff'

  本模块还提供了Base32和Base16编解码接口:  

1.  b32encode(s)    
2.  b32decode(s, casefold = False , map01 = None )  

  

Base16编解码:

1.  b16encode(s)
2.  b16decode(s, casefold = False )

  其中参数s都是要编/解码的字符串

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!