Base64

Base64とは



Base64は、データを64種類の印字可能な英数字と記号を用いて表現するエンコード方式です。主に、7ビットのデータしか扱えない環境で、バイナリデータやマルチバイト文字を安全に伝送するために使用されます。MIME(Multipurpose Internet Mail Extensions)規格によって規定されており、電子メールでの添付ファイル送信や、Basic認証などで広く採用されています。

Base64の仕組み



Base64エンコードのプロセスは以下の通りです。

1. 元のデータを6ビットずつに分割します。6ビットに満たない場合は、末尾に0を追加して6ビットにします。
2. 各6ビットの値を、対応するBase64の文字に変換します。変換表には、アルファベット[大文字]、アルファベット[小文字]、数字(0-9)の62文字と、記号の「+」「/」が使用されます。
3. 変換後の文字列が4文字に満たない場合は、末尾に「=」記号を追加して4文字の倍数になるように調整します。

この変換により、データサイズは元の約4/3(約133%)に増加します。さらに、MIME基準では76文字ごとに改行コードが挿入されるため、実際には約137%程度に増加します。

Base64の利用例



電子メール: SMTPなどのプロトコルでは7ビットのデータしか扱えないため、添付ファイルなどのバイナリデータをBase64でエンコードして送信します。
Basic認証: HTTPヘッダーで特殊文字の使用が制限されているため、ユーザー名とパスワードをコロン(:)で区切り、Base64でエンコードした文字列が認証に用いられます。
電子掲示板: 画像や圧縮ファイルなどのバイナリデータを投稿するために、Base64エンコードが用いられることがあります。

Base64の問題点



Base64エンコードによってデータ量が増加するため、大きなファイルの送受信には不向きです。また、英文テキストに特殊文字が混在する場合、特殊文字だけをエンコードする方がデータ効率が良いことがあります。

Base64の変形版



URLにBase64文字列を含める際、「+」と「/」がURLエンコードの対象となり、問題を引き起こすことがあります。そのため、これらの文字の代わりに、「!」、「-」、「.」などの別の記号を用いることがあります。同様に、XMLや正規表現など、特定の箇所で「+」と「/」の使用が制限される場合にも、変形版のBase64が用いられます。

関連技術



URLエンコード
uuencode
BinHex
ish
二進法
四進法
八進法
十六進法
Base32

参考資料



The Base16, Base32, and Base64 Data Encodings - IETFによる規格書(英語)。RFC 3548。
ベース64とベース32とベース16コード化 - 上記の参考和訳。
The Base16, Base32, and Base64 Data Encodings - IETFによる規格書(英語)。RFC 4648。
ベース64とベース32とベース16コード化 - 上記の参考和訳。
Online Base64 Encoding
Online Base64 Decoding


この解説を通して、Base64エンコードの基本的な仕組みや利用場面、注意点について理解を深めていただければ幸いです。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。