Base64とは

Base64は、バイナリデータ(画像・音声・実行ファイルなど)をASCII文字列に変換するエンコード方式です。A-Z・a-z・0-9・+・/の64種類の文字を使ってデータを表現することから「Base64」と呼ばれます。

なぜBase64が必要なのか

メールプロトコル(SMTP)やHTMLなど、テキストしか扱えない仕組みでバイナリデータを送受信したい場面があります。Base64を使うと、どんなバイナリデータも安全に転送できるテキストに変換できます。

  • メールの添付ファイル:MIMEエンコードでBase64が使われている
  • Data URIdata:image/png;base64,...でHTMLに画像を直接埋め込む
  • JWTトークン:ヘッダー・ペイロードはBase64URLエンコードされている
  • Basic認証Authorization: Basic dXNlcjpwYXNzはuser:passのBase64

エンコードの仕組み

3バイト(24ビット)を6ビットずつ4文字に変換します。そのためBase64エンコード後のデータは元の約4/3倍のサイズになります。3バイトに満たない場合は=でパディングします。

Base64URLとの違い

標準のBase64では+/がURLの予約文字と衝突するため、URL安全な「Base64URL」では+→-/→_に置き換え、パディングの=を省略します。JWTやOAuth2のトークンで広く使われます。

デコードで元のデータを復元

Base64はエンコードであり暗号化ではありません。誰でも簡単にデコードできるため、機密情報の保護には使用しないでください。パスワードや個人情報をBase64で「隠す」のはセキュリティ上危険です。