base64_encode

Tester

概要

string base64_encode(string $str)

指定した data を base64 でエンコードします。

このエンコードは、メールの本体のように 8 ビットクリーンではないトランスポート層を通じても、 バイナリデータが生き残れるように設計されています。

Base64 でエンコードされたデータは、エンコード前のデータにくらべて 33% 余計に容量が必要です。

補足

コメント

Base64 エンコードは、元データを6bitずつに分割し、変換表にしたがって64種のアスキー文字(A-Za-z0-9+/)に変換します。 また、変換後の文字列は必ず4の倍数の文字数になるよう定められており、足りない文字数分は末尾に 「=」を1~3個付加する事により文字数を調節します。

そのためBase64 変換済みの文字列は、75%の確率で末尾に「=」が付加されていることになり、 これがBase64 エンコードの特長ともいえます。末尾に「=」が付加されている文字列であれば、 高い確率でBase64変換された文字列だと思っていいでしょう。

さらにアスキー文字をBase64エンコードした場合には、「/」が現れることはまれです。 評価対象の6ビットがすべて1の場合のみで、このパターンになるのは、3の倍数番目に「?」 (00111111)が来たときのみです。ですので、「/」がないもしくは非常に少ない場合には、 アスキー文字がBase64エンコーディングされている可能性が高いと考えていいでしょう。

ただしUTF-8で表現された日本語の場合1文字が3バイトであるため、日本語だけであれば「=」が付加されることはありません。

変換例

  • app → YXBw
  • apple → YXBwbGU=
  • 0123456789 → MDEyMzQ1Njc4OQ==
  • エンコード → 44Ko44Oz44Kz44O844OJ

関連

ちょこっとアンケート&メッセージ

このページに関するちょっとした感想または、要望、バグ・間違いの指摘、 質問・その他お問合せ等は、下記の送信欄からお送りください。 返信をご希望の方は「こちらのページ」からメッセージをお送りください。

「このページはお役に立ちましたか?」のアンケートとメッセージのどちらか一方でかまいません (両方書いていただけるとよりうれしいです)。お気軽にご利用ください (感想・フィードバック・どんな用途で使用したかなどをいただけると作成・運営の励みになります!)


このページはお役に立ちましたか?