前のトピック: Login2次のトピック: Base 64 アルファベット


Base64 エンコードのアルゴリズム

Base64 エンコードは 6 ビット(2^6 = 64 文字に相当)のみを使用するため、Base64 という名前です。 この 64 文字は、10 個の数字、26 個の小文字、26 個の大文字、プラス記号(+)、および / です。

Base64 エンコードのプロセスは、2 つのステップで実行されます。 バイトのストリームが、それぞれ連続した 3 バイトで構成されているグループに分割されます。 各グループ(それぞれ 8 ビットで構成する連続した 3 バイト)は、6 ビットの 4 つの数字に変換されます。 2 番目のステップでは、Base64 エンコード テーブルを使用して、数字が ASCII 文字に変換されます。

例:

ステップ 1: 文字列 "$t@"(36、116、64)に対応するビット ストリームは 001001000111010001000000 であり、さらに 6 ビットの値 9、7、17、および 0 に対応します。

36 = 00100100

116 = 01110100

64 = 01000000

001001 = 9

000111 = 7

010001 = 17

000000 = 0

ステップ 2: これらの数字は、Base64 エンコード テーブルを使用して ASCII 文字に変換されます。 この例では、6 ビットの値が ASCII シーケンス "JHRA" に変換されます。

9 => J

7 => H

17 => R

0 => A

注: バイト単位のオリジナル データのサイズが 3 の倍数でない場合、8 ビットのバイトが 1 つか 2 つ余る場合があります。 これを解決するには、値 '0' で足りないバイトを付加して、3 バイトのグループを作成します。

このように人為的に付加された '0' は、エンコード テーブルを使用してエンコードされません。 これらは、65 番目の文字によって表示されます。 Base64 の埋め込み文字は '=' です。