Base64 エンコーダー / デコーダー
テキストや証明書データなどを、安全に通信・保存するための「Base64形式」に相互変換します。
エンジニアのためのBase64基礎知識
インフラ構築やWeb開発の現場において、Base64(ベースロクヨン) によるエンコード(文字の変換)技術は至る所で使われています。
Base64とは何か?
Base64は、画像ファイルや暗号鍵など「そのままではシステム間で文字化けしてしまう可能性のあるデータ」を、英数字(A-Z, a-z, 0-9)と記号(+, /)の計64文字だけで構成された「安全な文字列」に変換するためのルールです。
現場でBase64が使われる代表例
- Basic認証: URLやHTTPヘッダーにユーザー名とパスワードを混ぜて送る際、コロン区切りの文字がURLを壊さないようBase64が使われます。
- SSL/TLS証明書 (.pem): サーバーの暗号鍵などのバイナリデータは、メール等で送受信しても壊れないようBase64でテキスト化されて保存されます。
- JWT (JSON Web Token): 最新のWeb認証に使われるトークンの構成要素もBase64でエンコードされています。
- メールの添付ファイル: 画像データなどをメール本文の文字と一緒に送るための国際規格(MIME)で使われています。
🚨 注意喚起: Base64は「暗号化」ではありません
Base64はデータを「安全な文字に変換」しているだけであり、データを「隠す(暗号化)」技術ではありません。当サイトのようなデコードツールを使えば、誰でも一瞬で元の文字に戻すことができます。そのため、パスワードなどを直接Base64でデータベースに保存してはいけません。(暗号化にはハッシュ化技術である SHA-256 等を使用します)。
Base64とは?仕組みをわかりやすく解説
Base64は、バイナリデータ(画像・ファイル等)や任意のテキストを、64種類のASCII文字(A-Z・a-z・0-9・+・/)のみで表現するエンコード方式です。メールやHTTPヘッダーなど「特定の文字しか扱えない」場面で、安全にデータを運ぶために使われます。
元のデータを6ビット単位に区切り直してインデックス化するため、データサイズは元の約1.33倍(4/3倍)になります。末尾の = はパディング(詰め物)で、6ビットの端数を調整するために付きます。
Base64が使われる主な場面
ヘッダーとペイロードがBase64URLエンコードされています。eyJ... で始まるトークンがその典型です。
HTTPのBasic認証ヘッダーは username:password をBase64エンコードして送信します。
証明書ファイルの -----BEGIN CERTIFICATE----- と -----END CERTIFICATE----- の間の文字列がBase64です。
SMTPはテキスト専用のため、画像・PDFなどのバイナリファイルはBase64に変換して添付されます。
background: url('data:image/png;base64,...') のように、小さな画像をCSSに直接埋め込む際に使います。
改行を含むSSH鍵やJSONのサービスアカウントキーをBase64化して1行の環境変数に格納するケースがあります。
コマンドラインでBase64を扱う(Linux/Mac)
Base64とBase64URLの違い
JWTやURLで使われる Base64URL は、通常のBase64から以下2文字を置き換えた亜種です:
| 通常のBase64 | Base64URL | 理由 |
|---|---|---|
| + | - | URLの区切り文字と衝突しないため |
| / | _ | URLのパス区切り文字と衝突しないため |
| =(パディング) | 省略可 | URLエンコード時の問題を避けるため |