跳转至

1. base4

官网地址

1. 简介

  在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应报文进行解码。
  Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。
  • 优点:速度快,ascii字符,肉眼不可理解

  • 缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合

2. python2中

#!/usr/bin/python
# _*_ coding: utf-8 _*_
import base64
s = '我是字符串'
a = base64.b64encode(s)
print a

print base64.b64decode(a)
运行

root@root:~$ python2 1.py
5oiR5piv5a2X56ym5Liy
我是字符串

3. python3中

python3不太一样:因为3.x中字符都为unicode编码,而b64encode函数的参数为byte类型,所以必须先转码。

#!/usr/bin/python
# _*_ coding: utf-8 _*_
"""
@Author  : caimengzhi
@File    : base64使用.py
@Software: PyCharm
"""

import base64

if __name__ == '__main__':
    s = 'plain text'

    # base64编码
    t = base64.b64encode(s.encode('UTF-8'))
    print("base64编码 ",str(t, 'utf-8'))

    # base64解码
    t = base64.b64decode(t)
    print("base64解码 ",str(t, 'utf-8'))

    # base32编码
    t = base64.b32encode(s.encode('UTF-8'))
    print("base32编码 ",str(t, 'utf-8'))

    # base32解码
    t = base64.b32decode(t)
    print("base32解码 ",str(t, 'utf-8'))

    # base16编码
    t = base64.b16encode(s.encode('UTF-8'))
    print("base16编码 ",str(t, 'utf-8'))

    # base16解码
    t = base64.b16decode(t)
    print("base16解码 ",str(t, 'utf-8'))
运行结果

"C:\Program Files\Python37\python.exe" D:/code/code-django/库/加密和解密/base64使用.py
base64编码  cGxhaW4gdGV4dA==
base64解码  plain text
base32编码  OBWGC2LOEB2GK6DU
base32解码  plain text
base16编码  706C61696E2074657874
base16解码  plain text

注意

  • base64.bxxencode接受一个字节数组bytes用于加密,返回一个bytes存储加密之后的内容。
  • base64.bxxdecode接受一个存放着密文的bytes,返回一个bytes存放着解密后的内容。