Reference

Base64エンコーディングとは?

Base64エンコーディング形式、アルゴリズム、実践的な使用例についての完全ガイド。

Base64とは何か?

Base64はRFC 4648で定義されたバイナリからテキストへの変換スキームです。64種類の印刷可能なASCII文字を使用してバイナリデータを表現します。アルゴリズムは入力の3バイト(24ビット)ごとに4文字の出力に変換し、元のバイナリデータより約33%サイズが増加します。

Base64はSMTP、JSON、XML、URLなど多くのプロトコルがテキストのみをサポートするために存在します。バイナリコンテンツをテキストセーフな形式に変換することでこの問題を解決します。

仕組み

アルゴリズムは3バイトずつ処理し、6ビットの4グループに分割して、各グループをBase64アルファベットの1文字にマッピングします。長さが3の倍数でない場合、パディング文字(=)が追加されます。

Base64を使う場面

  • HTML/CSSにデータURIとして画像を埋め込む
  • テキストのみのチャンネルでバイナリを送信する
  • HTTP Basic認証の認証情報
  • 問題のある文字を含む設定を保存する

Base64は暗号化ではない

Base64はエンコーディングであり、暗号化ではありません。鍵なしで元に戻せます。データを保護するにはTLS/HTTPSや本物の暗号化(AES等)を使用してください。

よくある質問

Base64は暗号化ですか?

いいえ。Base64は形式を変換するだけです — 誰でも鍵なしでデコードできます。

サイズはどれだけ増えますか?

Base64データは元のバイナリデータより約33%大きくなります。