Base64 は、64 個の印刷可能な ASCII (情報交換のための米国標準コード) 文字を基数とする位置番号システムです。このシステムは、たとえば、電子メールでバイナリ ファイルを表示するために使用されます。すべての Base64 バリアントは、文字 A ~ Z、a ~ z、および 0 ~ 9 を合計 62 文字使用します。欠落している 2 文字は、実装システムで別の文字に置き換えられます。元の 3 バイトごとに 4 文字でエンコードされます。
Base64 の歴史
最初は、メール (RFC 822) で送信できるのはテキストのみでした。時間が経つにつれて、テキストとともに、オーディオ、ビデオ、グラフィック ファイル、アプリケーションなどを転送する必要がありました。バイナリ ファイルをテキストに変換する必要がありました。 Base64 は、MIME (Multipurpose Internet Mail Extensions) 仕様 (RFC 2045-2049) で使用されている当時の既存の UUE エンコーディング (Uuencode) に追加されました。
MIME は、電子メッセージのヘッダーを記述するための標準です。これを使用すると、アーカイブされたテキスト ファイルや HTML ページなど、複数の添付ファイルを 1 通の手紙で送信できます。 MIME 対応の電子メール プログラムは、テキスト ファイルから自由にアーカイブを抽出し、メッセージを表示し、HTML タグを解析します。たとえば、Outlook Express は HTML ページに埋め込まれたスクリプトを自動的に実行します。
Base64 は、7 ビット、6 ビット、3 ビット バイトの時代に生まれました。古いエンコーディングは 8 ビット標準をサポートしていませんでした。このため、古いシステムから新しいシステムに転送されると、情報の一部が失われました。多くの場合、メールサーバーは、手紙を送信するときに、余分な 8 番目のビットをドロップしたり、ビデオや画像を送信したりしませんでした。このような問題を解消するために、バイナリ コードをテキストに変換するエンコーディングが開発されました。最も一般的で効果的なシステムは Base64 です。そのシンプルさから、あらゆる場所で使用されています。
「印刷用エンコーディング」と呼ばれるアルゴリズムが最初に記述されたのは 1987 年で、Base64 は 1992 年 6 月に登場しました。このシステムのバージョンは、Base16、Base32、Base36、Base58、Base85、Base91、および Base122 です。その後の標準は、IT 分野で積極的に使用されています。
興味深い事実
一部のシステムでは、Base58 を使用して URL をエンコードします。これは、Base64 とは異なり、最終的なテキストに人間が曖昧に認識する可能性のある文字が含まれていません。 0 (ゼロ)、O (大文字のラテン語の o)、I (大文字のラテン語の i)、l (小文字のラテン語の L) は除外されます。また、+ (プラス) および / (スラッシュ) 文字も除外されます。これらの文字は、URL をエンコードするときに、アドレスの誤った解釈につながる可能性があります。
Base64 は、可逆で復元可能なエンコーディングを提供します。このサービスは、8 ビット コード テーブルの文字を、ネットワーク内およびデバイス間の情報の転送中に保持される文字に変換します。