編碼和解碼 Base64
要在指令碼中包含 base64 模組,必須先將其匯入:
import base64
base64 編碼和解碼函式都需要類似位元組的物件 。要將字串轉換為位元組,我們必須使用 Python 的內建編碼函式對其進行編碼。最常見的,UTF-8
編碼時,可以發現這些編碼標準(包括不同字元的語言)的但完整列表在這裡官方 Python 文件。下面是將字串編碼為位元組的示例:
s = "Hello World!"
b = s.encode("UTF-8")
最後一行的輸出是:
b'Hello World!'
b
字首用於表示值是位元組物件。
要對這些位元組進行 Base64 編碼,我們使用 base64.b64encode()
函式:
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
print(e)
該程式碼將輸出以下內容:
b'SGVsbG8gV29ybGQh'
它仍然在 bytes 物件中。要從這些位元組中獲取字串,我們可以使用 Python 的 decode()
方法和 UTF-8
編碼:
import base64
s = "Hello World!"
b = s.encode("UTF-8")
e = base64.b64encode(b)
s1 = e.decode("UTF-8")
print(s1)
輸出將是:
SGVsbG8gV29ybGQh
如果我們想對字串進行編碼然後解碼,我們可以使用 base64.b64decode()
方法:
import base64
# Creating a string
s = "Hello World!"
# Encoding the string into bytes
b = s.encode("UTF-8")
# Base64 Encode the bytes
e = base64.b64encode(b)
# Decoding the Base64 bytes to string
s1 = e.decode("UTF-8")
# Printing Base64 encoded string
print("Base64 Encoded:", s1)
# Encoding the Base64 encoded string into bytes
b1 = s1.encode("UTF-8")
# Decoding the Base64 bytes
d = base64.b64decode(b1)
# Decoding the bytes to string
s2 = d.decode("UTF-8")
print(s2)
正如你所料,輸出將是原始字串:
Base64 Encoded: SGVsbG8gV29ybGQh
Hello World!