Python Base64编码和解码操作

作者:峡谷的小鱼 时间:2022-10-20 06:26:05 

Base64编码和解码

Base64 不是加密算法,只是一种编码方式,数据从一种形式转换为另一种形式进行传输/存储。Base64 就是一种基于64个可打印字符来表示二进制数据的方法。
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。最后,用一个码表来得到我们想要的字符串,这就是 Base64编码。
码表:

索引

对应字符

索引

对应字符

索引

对应字符

索引

对应字符

0

A

17

R

34

i

51

z

1

B

18

S

35

j

52

0

2

C

19

T

36

k

53

1

3

D

20

U

37

l

54

2

4

E

21

V

38

m

55

3

5

F

22

W

39

n

56

4

6

G

23

X

40

o

57

5

7

H

24

Y

41

p

58

6

8

I

25

Z

42

q

59

7

9

J

26

a

43

r

60

8

10

K

27

b

44

s

61

9

11

L

28

c

45

t

62

+

12

M

29

d

46

u

63

/

13

N

30

e

47

v



14

O

31

f

48

w



15

P

32

g

49

x



16

Q

33

h

50

y



Python 中集成了base64 模块,可用于对二进制数据进行编码解码操作:

>>> a = "Hello world"
>>> b = base64.encode(a)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: encode() missing 1 required positional argument: 'output'
>>>
>>>
>>> b = base64.b64encode(a)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python3.8/base64.py", line 58, in b64encode
   encoded = binascii.b2a_base64(s, newline=False)
TypeError: a bytes-like object is required, not 'str'
>>>
>>>
>>>
>>> a = b"Hello world"
>>> b = base64.b64encode(a)
>>> b
b'SGVsbG8gd29ybGQ='
>>> c = base64.b64decode(b)
>>> c
b'Hello world'
>>> d = b.decode('ascii')
>>> d
'SGVsbG8gd29ybGQ='
>>> e = base64.b64decode(d)
>>> e
b'Hello world'
>>>

可以看到使用 base64.b64encode 进行编码时,只能时二进制数据,如果输入时 str 文本,将报错 TypeError。
而使用 base64.b64decode 解码时,字符串和字节床都可以作为输入。

来源:https://blog.csdn.net/weixin_43276033/article/details/124886105

标签:Python,Base64,编码,解码
0
投稿

猜你喜欢

  • 微信跳一跳php代码实现

    2024-06-05 09:46:20
  • Python定时执行之Timer用法示例

    2021-09-14 21:46:01
  • python 元组和列表的区别

    2021-08-25 19:01:27
  • JavaScript实现九宫格抽奖

    2024-04-16 09:32:06
  • Vue双向绑定原理及实现方法

    2024-05-10 14:16:55
  • Java数据库操作库DButils类的使用方法与实例详解

    2024-01-20 13:32:45
  • postman传递当前时间戳实例详解

    2022-01-09 17:28:34
  • Python中input()函数的用法实例小结

    2021-09-04 18:42:59
  • Mysql常用命令行大全

    2009-01-15 16:34:00
  • python输入中文的实例方法

    2023-08-03 03:25:43
  • Python中Generators教程的实现

    2023-07-28 03:23:20
  • 远程登录MySQL服务(小白入门篇)

    2024-01-19 09:02:56
  • 中国移动G3笔记本全Flash 网站

    2009-04-27 12:51:00
  • Python函数中参数是传递值还是引用详解

    2022-10-13 02:45:18
  • Python上下文管理器Content Manager

    2021-08-22 23:47:11
  • Python3 Loguru输出日志工具的使用

    2021-11-18 04:28:29
  • 那些被我遗忘掉的XHTML标签们

    2008-06-07 14:27:00
  • PyQt QCombobox设置行高的方法

    2021-10-15 19:50:20
  • pandas to_excel 添加颜色操作

    2021-07-19 19:49:57
  • 一文看懂JSONP原理和应用

    2024-04-23 09:10:47
  • asp之家 网络编程 m.aspxhome.com