base64 エンコーディングの原則は、8 ビットのサブセクション シーケンスを 6 ビットのフラグメントに分解し、各 6 ビットのフラグメントに文字を割り当てることです。これらの 64 文字は、小文字 [a ~ z] と大文字 [A ~ Z] です。 ] ]、数字[0~9]、記号[ ]、[/]。
base64 エンコードの原理は次のとおりです。
Base64 エンコードは、8 ビットのサブセクション シーケンスを 6 ビットに逆アセンブルします。フラグメント。各 6 ビット フラグメントに文字を割り当てます。これらの 64 文字は、小文字の a ~ z、大文字の A ~ Z、数字 0 ~ 9、記号「 」、「/」です。64 の意味については、ここを参照してください。 64 文字。実際にはパッド「=」があり、実際には 65 文字です。
Base64 ルールは次のとおりです。
最初のステップは、3 バイトごとを 1 つのグループ (合計 24 バイナリ ビット) として扱うことです。
2 番目のステップは、これらの 24 バイナリ ビットを 4 つのグループに分割することです。各グループには 6 つのバイナリ ビットがあります。
3 番目のステップでは、各グループの前に 2 つの 00 を追加して、2 進数 32 桁、つまり 4 バイトに拡張します。したがって、base64 でエンコードされた文字列は、元の文字列より約 33% 大きくなります。
例
英語の単語 Man がどのように Base64 エンコードに変換されるかを示す具体的な例を挙げてください。 。
最初のステップでは、「M」、「a」、「n」の ASCII 値はそれぞれ 77、97、110 です。対応するバイナリ値は 01001101 、 01100001、 01101110 であり、これらを 24 ビットのバイナリ文字列 010011010110000101101110 に連結します。
2 番目のステップでは、この 24 ビットのバイナリ文字列を 4 つのグループに分割します。各グループには 6 つのバイナリ数字があります: 010011、010110、000101、101110。
3 番目のステップでは、各グループの前に 2 つの 00 を追加して、32 の 2 進数、つまり 4 バイト (00010011、00010110、00000101、00101110) に拡張します。それらの 10 進数値はそれぞれ 19、22、5、および 46 です。
4 番目のステップでは、以下の図に従って、各値 (T、W、F、u) に対応する Base64 エンコーディングを取得します。
したがって、Man の Base64 エンコーディングは TWFu です。
以上がBase64エンコードの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。