Base64とは
Base64は、バイナリデータ(画像・音声・実行ファイルなど)をASCII文字列に変換するエンコード方式です。A-Z・a-z・0-9・+・/の64種類の文字を使ってデータを表現することから「Base64」と呼ばれます。
なぜBase64が必要なのか
メールプロトコル(SMTP)やHTMLなど、テキストしか扱えない仕組みでバイナリデータを送受信したい場面があります。Base64を使うと、どんなバイナリデータも安全に転送できるテキストに変換できます。
- メールの添付ファイル:MIMEエンコードでBase64が使われている
- Data URI:
data: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で「隠す」のはセキュリティ上危険です。