Base64 エンコードは、バイナリまたはテキスト データを含むバイトを ASCII 文字に変換するために使用されます。エンコーディングにより、データがテキストのみのシステムを介して転送または処理されるときにデータが破損するのを防ぎます。この記事では、Base64 エンコードとデコード、およびバイナリ データとテキスト データをエンコードおよびデコードするための Base64 の使用法について説明します。
Base64エンコーディング:
これは、バイトから ASCII 文字への変換の一種です。使用可能な Base64 文字のリストを以下に示します。
Java入力
- 26 文字の大文字
- 26 個の小文字
- 10 個の数字
- + と / は改行です
各 Base64 文字は 6 ビットのデータを表します。明らかな理由から、これは暗号化を目的としていないことに注意することも重要です。
文字列を Base64 文字に変換するには、次の手順に従う必要があります。
- 文字列内の各文字の ASCII 値を取得します。
- ASCII 値と同等の 8 ビット バイナリを計算します。
- 数字を再グループ化して、8 ビット文字の塊を 6 ビットの塊に変換します。
- 6 ビットのバイナリ グループをそれぞれの 10 進数値に変換します。
- Base64 エンコード テーブルを使用して、各 10 進数値のそれぞれの Base64 値を揃えます。
以下の画像は、Base64 エンコード テーブルを示しています。

画像出典: ウィキペディア
Python を使用して文字列をエンコードする:Python では、base64 モジュールを使用してデータをエンコードおよびデコードします。まず、文字列がバイトのようなオブジェクトに変換され、base64 モジュールを使用してエンコードされます。以下の例は、エンコード文字列の実装が Base64 文字ではないことを示しています。
例:
import> base64> > sample_string>=> 'GeeksForGeeks is the best'> sample_string_bytes>=> sample_string.encode(>'ascii'>)> > base64_bytes>=> base64.b64encode(sample_string_bytes)> base64_string>=> base64_bytes.decode(>'ascii'>)> > print>(f>'Encoded string: {base64_string}'>)> |
>
>
出力:
Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA==>
Python を使用して文字列をデコードする:
Base64 文字列のデコードは、エンコードの場合とまったく逆です。まず、Base64 文字列をエンコードされていないデータ バイトに変換し、続いてバイトのようなオブジェクトから文字列に変換します。以下の例は、上記のエンコード文字列出力の例のデコードを示しています。
例:
監督 カラン・ジョーハル
import> base64> > > base64_string>=>' R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA =='> base64_bytes>=> base64_string.encode(>'ascii'>)> > sample_string_bytes>=> base64.b64decode(base64_bytes)> sample_string>=> sample_string_bytes.decode(>'ascii'>)> > print>(f>'Decoded string: {sample_string}'>)> |
>
>
出力:
Decoded string: GeeksForGeeks is the best>