Pythonでは、Base64エンコーディングとデコーディングを行うためのbase64
モジュールが提供されています。しかし、すべてのBase64データがデフォルトの文字セットを使用してエンコードされるわけではないため、カスタム文字セットを使用してBase64エンコーディングを行う方法について説明します。
カスタム文字セットを使用したBase64エンコーディング
以下に、Pythonでカスタム文字セットを使用してBase64エンコーディングを行う例を示します。
import base64
data = 'some random? data'
std_base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
custom = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
data = data.translate(str.maketrans(custom, std_base64chars)).encode()
print(base64.b64encode(data))
この例では、標準のBase64文字セットをカスタム文字セットに変換してから、データをエンコードしています。
カスタム文字セットを使用したBase64デコーディング
カスタム文字セットを使用してBase64デコーディングを行うには、エンコーディングと同様にtranslate
関数を使用しますが、この場合はカスタム文字セットと標準のBase64文字セットを逆にします。
import base64
encoded_data = base64.b64encode(data)
decoded_data = encoded_data.decode().translate(str.maketrans(std_base64chars, custom))
print(decoded_data)
この例では、エンコードされたデータをデコードし、その結果をカスタム文字セットに変換しています。
以上が、Pythonでカスタム文字セットを使用したBase64エンコーディングとデコーディングを行う方法です。これにより、標準のBase64エンコーディングとデコーディングだけでなく、任意の文字セットを使用したエンコーディングとデコーディングも可能になります。