Python base64模块详解

Love The Way You Lie 2022-08-26 08:35 200阅读 0赞

Python base64模块是用来作base64编码解码的。

最简单的加解密实例:

  1. import base64
  2. str1 = 'djhui'
  3. str2 = base64.b64encode(str1)
  4. str3 = base64.b64decode(str2)

Python 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编解码的,实际上也是调用的前一组函数。
Python base64模块加/解密例子:

  1. #-*- encoding:gb2312 -*-
  2. import base64
  3. import StringIO
  4. a = "this is a test"
  5. b = base64.encodestring(a) # 对字符串编码
  6. print b
  7. print base64.decodestring(b) # 对字符串解码
  8. c = StringIO.StringIO()
  9. c.write(a)
  10. d = StringIO.StringIO()
  11. e = StringIO.StringIO()
  12. c.seek(0)
  13. base64.encode(c, d) # 对StringIO内的数据进行编码
  14. print d.getvalue()
  15. d.seek(0)
  16. base64.decode(d, e) # 对StringIO内的数据进行解码
  17. print e.getvalue()
  18. a = "this is a +test"
  19. b = base64.urlsafe_b64encode(a) # 进行url的字符串编码
  20. print b
  21. print base64.urlsafe_b64decode(b)

上面的encode函数和decode函数的参数也可以是文件对象:

  1. f1 = open('aaa.txt', 'r')
  2. f2 = open('bbb.txt', 'w')
  3. base64.encode(f1, f2)
  4. f1.close()
  5. f2.close()

发表评论

表情:
评论列表 (有 0 条评论,200人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Pythonbase64模块

    base64模块是用来作base64编码解码,常用于小型数据的传输。编码后的数据是一个字符串,其包括a-z、A-Z、0-9、/、+共64个字符,即可用6个字节表示,写出数值就是

    相关 base64模块

    概念 Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个B

    相关 base64 模块

    Base64简介 Base64是一种用64个字符来表示任意二进制数据的方法。 Base64是一种通过查表的编码方法,不能用于加密,即使使用自定义的编码表也不行。 Ba