首頁 > 軟體

Python Base64編碼和解碼操作

2022-12-03 14:01:00

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 解碼時,字串和位元組床都可以作為輸入。

到此這篇關於Python Base64編碼和解碼的文章就介紹到這了,更多相關Python Base64編碼和解碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com