ICDロゴ

Base64

【ベース・ロク・ジュウ・ヨン】

最終更新日: 1999/05/19

 インターネットメールでバイナリデータを送る場合に使用されるデータエンコード方式の1つ。

 インターネットメールは、基本的に7bitのキャラクタコードからなる文字列を送受信するためのシステムとして設計されているため、バイナリコード(やShift JISやEUCなどの漢字コード)をそのまま直接送信することはできない。バイナリコード中には、メール本文のメッセージ行を区切るための特殊文字が含まれていたり、キャラクタとして利用できない多くのデータが含まれている可能性があり、そのまま送信しようとすると、途中でデータが化けたり、場合によっては、メールシステムに障害を発生させることがあるからだ。このためアプリケーションの文書ファイルデータや、GIFやJPEGなどのグラフィックスデータ、音声データなどはそのままではインターネットメールのデータとして送信できない。また、ワープロソフトの出力するテキストファイルのように、1段落が1つの文であるような長い行の文を送ろうとすると、メールシステムの制限により、途中で不要な改行などが行われてしまうことがある。

 この問題を回避するには、送り手側でこうしたバイナリのデータをインターネットメールシステムが問題なく転送できるキャラクタコードのデータにいったん変換し、それを受信側で元のバイナリデータに戻せばよい。こうしたデータ変換処理がデータのエンコード化であり、Base64はこのエンコード方式の1つである。インターネットメールで使用されるバイナリデータのエンコード方式としては、ほかにもuuencodeやQuoted Printableなどがあるが、Base64は最も広く利用されている。

 Base64では、元のバイナリデータの6bit分を0〜63までの数値とみなし、これらにアルファベットの大文字(26文字)、アルファベットの小文字(26文字)、数字(0〜9までの10文字)、記号(「+」と「/」の2文字)の64文字に変換する。このデータ変換は、元のデータの3byte(24bit)を6bit×4とみなして、4文字に変換する。元のデータが3の倍数でない場合には、変換結果が4の倍数になるように、「=」を1つないし2つ追加する。

 このエンコード方式では、元の3byteが常に4byteに変換されるので、元のデータよりもサイズが33%程度増えることになる(たとえすべてテキスト文字の場合でも、必ず3byteが4byteに変換される)。メールシステムによっては、一度に転送できるメールサイズに制限がある場合があるので、大きなファイルを送る場合は、あらかじめ圧縮しておくか(Base64やuuencode、Quoted Printableなどエンコードには、圧縮機能は含まれていない)、複数のメールに分割して送り、受信側で復元する必要がある。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ