Base64エンコード・デコード

テキストを入力するだけで、Base64エンコード・デコードをリアルタイムで変換します。日本語(UTF-8)に完全対応。

🔄 Base64 変換ツール

入力テキスト
入力: 0 バイト
変換結果
出力: 0 バイト

Base64とは?

Base64は、バイナリデータをASCII文字列に変換するエンコード方式です。名前の由来は、64種類の印刷可能な文字(A-Z、a-z、0-9、+、/)を使ってデータを表現することにあります。パディングには「=」記号が使われます。1993年にRFC 1421で最初に定義され、現在のインターネット標準ではRFC 4648で規格化されています。

Base64は「エンコード」であり「暗号化」ではありません。誰でも簡単に元のデータに復元できるため、機密情報の保護には使えません。あくまでデータの形式を変換する手段として理解することが重要です。

Base64の仕組み ─ 6ビットエンコーディング

Base64の変換プロセスは、元のデータを6ビットずつに区切ることで行われます。通常のバイトデータは8ビット単位ですが、Base64では3バイト(24ビット)を4つの6ビットグループに分割します。各6ビットグループ(0〜63の値)を、対応する64種類の文字に置き換えることで、バイナリデータをテキストとして表現できます。

元のデータが3バイトの倍数でない場合は、不足分をゼロで埋めてからエンコードし、出力の末尾に「=」または「==」のパディングを追加します。この仕組みにより、Base64でエンコードされたデータは元のデータより約33%サイズが大きくなります。3バイトが4文字になるため、4/3倍のデータ量になるのです。

Base64の主な用途

メール添付ファイル(MIME)

電子メールのプロトコル(SMTP)はもともとASCIIテキストしか扱えませんでした。画像やPDFなどのバイナリファイルをメールに添付するために、MIMEという規格でBase64エンコードが使われています。メールクライアントは送信時に添付ファイルをBase64に変換し、受信時に自動的にデコードして元のファイルに復元します。

データURI

HTMLやCSSの中に小さな画像やフォントを直接埋め込むために、データURIスキームが使われます。たとえば、小さなアイコン画像をBase64エンコードしてCSSのbackground-imageに記述すれば、HTTPリクエストを減らしてページの読み込み速度を向上させることができます。ただし、大きなファイルをデータURIにするとHTMLファイル自体が肥大化するため、数KB以下の小さなリソースに限定して使用するのが一般的です。

APIトークンとHTTP認証

HTTP Basic認証では、ユーザー名とパスワードを「ユーザー名:パスワード」の形式で連結し、Base64エンコードしてAuthorizationヘッダーに含めます。また、APIキーの送受信やOAuth認証のフローでもBase64が利用されることがあります。繰り返しますが、Base64は暗号化ではないため、必ずHTTPS(TLS)と組み合わせて使用する必要があります。

JWT(JSON Web Token)

JWTは、ヘッダー・ペイロード・署名の3つの部分をBase64URLエンコードし、ピリオドで連結した文字列です。Webアプリケーションの認証やセッション管理で広く使われています。JWTのペイロードはBase64デコードするだけで内容を読めるため、トークンに機密情報を含めないよう注意が必要です。

Base64は暗号化ではない

開発者の間でよくある誤解のひとつが、Base64を暗号化の手段として使うことです。Base64は単なるエンコーディングであり、鍵を使った暗号化アルゴリズム(AES、RSAなど)とは根本的に異なります。Base64エンコードされたデータは、誰でもデコードして元の内容を読むことができます。パスワードやクレジットカード番号などの機密情報をBase64でエンコードしただけでは、セキュリティは一切向上しません。機密データを保護するには、TLSによる通信暗号化や、AES-256などの暗号化アルゴリズムを使用してください。

URL-safe Base64とは

標準のBase64では「+」と「/」の記号が使われますが、これらはURLやファイル名では特別な意味を持つ文字です。URLのクエリパラメータにBase64文字列を含めると、「+」がスペースに変換されたり、「/」がパスの区切りと解釈されたりする問題が生じます。

この問題を解決するために、RFC 4648ではURL-safe Base64(Base64URL)が定義されています。標準の「+」を「-」(ハイフン)に、「/」を「_」(アンダースコア)に置き換え、パディングの「=」を省略する形式です。JWTや多くのWebフレームワークでは、このURL-safe Base64が採用されています。

まとめ:Base64はバイナリデータをテキストに変換する基本的なエンコード技術で、メール・データURI・API認証・JWTなど幅広い場面で使われています。暗号化とは異なるため、セキュリティ目的では使用できません。このツールを活用して、日々の開発やデバッグにお役立てください。