Base64エンコーディングとは?
バイナリデータを64個のASCII文字でテキストに変換するエンコーディング方式です。
Base64エンコード・デコード
バイナリデータを64個のASCII文字でテキストに変換するエンコーディング方式です。
メール、JSON、HTMLなどテキストベースの形式でバイナリデータを安全に送信するためです。
はい、元のデータより約33%大きくなります。
Base64は、バイナリデータ(画像やファイルなど)をテキスト形式に変換するエンコード方式です。メールの添付ファイル、Webページへの画像埋め込み、APIの認証トークンなど、開発の現場では頻繁に登場します。
はい、元データに比べて約33%大きくなります。3バイトのデータを4文字のASCII文字で表すので、どうしてもサイズが膨らむんですよね。小さなアイコンをHTMLに埋め込むくらいなら問題ありませんが、大きなファイルには向いていません。
Base64は3バイト(24ビット)のデータを6ビットずつ4つに分け、それぞれをA-Z、a-z、0-9、+、/の64種類の文字に変換します。データの長さが3の倍数にならない場合は、末尾に「=」が付きます。この仕組みのおかげで、バイナリデータをテキストとして安全にやり取りできるわけです。開発者なら一度は見たことがあるあの長い文字列の正体がこれですね。
メール(MIME)では添付ファイルをテキストとして送るためにBase64が必須です。Web開発ではdata URIスキームを使って、CSSやHTMLに小さなアイコンを直接埋め込むことができます。API認証のBasic Authヘッダーでは、ユーザー名とパスワードをBase64でエンコードして送信するのが定番ですね。JSONやXMLなどテキスト形式の中にバイナリデータを含めたいときにも欠かせません。
Base64はサイズが33%増えますが、対応環境が幅広く安全性も高いです。Base32はオーバーヘッドが60%と大きいですが、大文字小文字を区別しないので特定の環境では便利。Hexエンコーディングはサイズが2倍になるものの、デバッグ時にデータの中身を確認しやすいメリットがあります。URLに含める場合は、+と/を-と_に置き換えたURL-safe Base64を使いましょう。用途に合わせて選ぶのがポイントですよ。