編碼和解碼 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!