Base64エンコード/デコード

テキストをBase64にエンコード、またはBase64文字列を元のテキストにデコードします。UTF-8を完全にサポートしています。

Base64エンコードとは?

Base64は、バイナリデータを64種類の印刷可能なASCII文字に変換するエンコード方式です。メール添付ファイル、WebデータURI、API認証など、テキストベースのプロトコルでバイナリデータを安全に送信するために広く使われています。このツールはブラウザ内ですべての処理を行うため、データがサーバーに送信されることはありません。

Base64活用のヒント

  • Base64は暗号化ではありません。機密データの保護には適切な暗号化を使用してください。
  • Base64エンコードは元のデータより約33%サイズが増加します。大容量ファイルには注意してください。
  • URLでBase64を使用する場合は、URLセーフ変種(+/の代わりに-_を使用)を検討してください。
  • JWTトークンはBase64URLエンコードされたJSONデータです。このツールでペイロードを確認できます。
  • 画像をBase64でCSS/HTMLに埋め込むとHTTPリクエストは減りますが、ファイルサイズが増加します。

Base64エンコード完全ガイド

Base64エンコード/デコードツールは、プレーンテキストとBase64エンコード文字列間の変換を即座に行う無料オンラインツールです。 すべての処理はブラウザ内でのみ行われ、データがサーバーに送信されることはなく、完全なプライバシーを保証します。 UTF-8を完全にサポートし、日本語、韓国語、中国語、絵文字など、すべてのUnicode文字のエンコードとデコードが可能です。 開発者、システム管理者、データエンジニアなど、さまざまな職種で日常的に使用される必須ツールです。

主な機能

  • UTF-8完全サポート — 日本語、韓国語、絵文字など、すべてのUnicode文字に対応
  • 双方向変換 — エンコードとデコードの両方を1つのツールで対応
  • ブラウザ専用処理 — データがデバイスから外部に送信されることはありません
  • 即時変換 — ワンクリックで結果を確認
  • ワンクリックコピー — 変換結果をクリップボードに即座にコピー

Base64エンコードが重要な理由

Base64は現代のWeb開発とデータ通信において不可欠な役割を果たしています。 テキストベースのプロトコル(HTTP、SMTP、JSONなど)は生のバイナリデータを直接処理できないため、 画像、ファイル、認証情報を安全に送信するにはBase64エンコードが必要です。
  • メール添付ファイル(MIME): SMTPメールプロトコルは7ビットASCIIベースのため、画像やドキュメントなどのバイナリ添付ファイルはBase64でエンコードして送信します。すべてのメールクライアントがこの方式を使用しています。
  • データURI(Data URL): HTMLやCSSに画像を直接埋め込む際にdata:image/png;base64,...形式を使用します。HTTPリクエスト数を削減し、ページ読み込み速度を改善できます。
  • API認証(Basic Auth): HTTP Basic Authenticationはusername:passwordをBase64でエンコードし、Authorization: Basic ...ヘッダーで送信します。
  • JWTトークン: JSON Web TokenはヘッダーとペイロードをBase64URLでエンコードします。署名検証なしでもペイロードをデコードしてトークン内容を確認できます。
  • JSON/XML内のバイナリデータ: テキストベースのデータ形式に画像やファイルなどのバイナリデータを含める場合、Base64エンコードが標準的なアプローチです。

Base64エンコードの仕組み

Base64は入力データを6ビット単位に分割し、64文字のうち1つにマッピングする方式で動作します。
  • 文字セット: A-Z(0-25)、a-z(26-51)、0-9(52-61)、+(62)、/(63)の合計64文字を使用します。
  • 変換プロセス: 入力データ3バイト(24ビット)を4つの6ビットグループに分割し、各グループを対応するBase64文字にマッピングします。
  • パディング: 入力長が3の倍数でない場合、残りのビットをゼロで埋め、出力の末尾に=文字を追加します。1バイトの余りは==、2バイトの余りは=が付きます。
  • 例: "Hi" → バイナリ 01001000 01101001 → 6ビットグループ 010010 000110 1001(00) → Base64 "SGk="

Base64の変種(バリアント)

用途に応じていくつかのBase64変種が存在します。
  • 標準Base64(RFC 4648): A-Z、a-z、0-9、+、/文字を使用し、=パディングを含みます。最も一般的な形式で、メール、MIMEなどで使用されます。
  • Base64URL(RFC 4648 §5): +の代わりに-、/の代わりに_を使用し、URLとファイル名で安全に使用できます。JWTトークン、URLクエリパラメータで使用されます。パディング(=)は省略されることが多いです。
  • MIME Base64(RFC 2045): 標準Base64と同じ文字を使用しますが、76文字ごとに改行(CRLF)を挿入します。メールメッセージで使用され、古いメールサーバーとの互換性を確保します。

実践的な活用例

  • CSSへの画像埋め込み: background-image: url('data:image/png;base64,iVBOR...') — 小さなアイコンやロゴに最適で、HTTPリクエストを削減してパフォーマンスを改善します。
  • JSONへのバイナリデータ保存: {"image": "iVBORw0KGgo..."} — REST APIレスポンスに画像やファイルデータを含める場合に使用します。
  • HTTP Basic Authヘッダー: Authorization: Basic dXNlcjpwYXNz — username:passwordをBase64エンコードしてAPI認証に使用します。
  • JWTトークンのデバッグ: eyJhbGciOiJIUzI1NiJ9をデコードすると{"alg":"HS256"} — トークンペイロードの確認に便利です。
  • メール添付ファイル処理: MIME Content-Transfer-Encoding: base64 — すべてのメール添付ファイルがこの方式でエンコードされます。

サイズ増加に関する注意

Base64エンコードは元のデータに対して約33%サイズが増加します。 3バイトの入力が4バイトの出力になるためです(4/3 ≈ 1.33)。 MIME Base64は改行文字が追加されるため、約36-37%増加します。

大容量ファイル(数MB以上)にBase64を適用するとメモリと帯域幅の無駄が大きくなるため、 可能であればマルチパートアップロードやバイナリ転送を使用することをお勧めします。 Base64は小規模データ(アイコン、設定値、認証トークンなど)に適しています。

セキュリティに関する注意

Base64はエンコードであり、暗号化ではありません。 Base64エンコードされたデータは誰でも即座にデコードできます。
  • パスワード、APIキー、個人情報などの機密データをBase64だけで保護しないでください。
  • HTTP Basic Authは必ずHTTPSと併用してください。Base64エンコードされた認証情報はネットワーク上で容易に傍受される可能性があります。
  • JWTトークンのペイロードはBase64URLエンコードされており、誰でも読めます。機密情報をペイロードに含めないでください。
  • 実際のセキュリティが必要な場合は、AES-256、RSA、bcryptなどの適切な暗号化/ハッシュアルゴリズムを使用してください。

関連ツール

URLエンコード/デコード

URLエンコード/デコードは、URL特殊文字をパーセントエンコーディング(%XX)に変換またはデコードするツールです。 Base64エンコードされた文字列をURLに含める場合、URLエンコードも併せて必要になることがあります。

  • URLクエリパラメータにBase64文字列を安全に含める
  • encodeURIComponentとencodeURIモードの選択をサポート
  • 国際化URL(日本語、韓国語など)のエンコード処理

ハッシュ生成器

Base64がエンコード(可逆)であるのに対し、ハッシュは一方向変換です。 データの整合性検証やパスワード保存には、Base64ではなくSHA-256やMD5などのハッシュ関数を使用してください。

  • SHA-256、MD5など複数のハッシュアルゴリズムをサポート
  • ファイルの整合性検証とチェックサム生成
  • Base64とは異なり、一方向関数のため逆変換が不可能

よくある質問

Base64は、バイナリデータを64種類のASCII文字(A-Z、a-z、0-9、+、/)を使用してテキストに変換するエンコード方式です。HTTP、SMTP、JSONなどのテキストベースプロトコルで生のバイナリデータがサポートされない場面で、バイナリデータを安全に送信するために使用されます。
いいえ。Base64はエンコードであり、暗号化ではありません。鍵やシークレットなしで誰でも簡単にBase64文字列をデコードできます。パスワード、APIキー、個人情報の保護には絶対に使用しないでください。セキュリティにはAES-256やRSAなどの適切な暗号化アルゴリズムを使用してください。
はい、このツールはUTF-8を完全にサポートしているため、日本語、韓国語、絵文字など、すべてのUnicode文字をエンコード/デコードできます。テキストはまずUTF-8バイトに変換され、そのバイトがBase64エンコードされます。
Base64エンコードは元のデータに対して約33%サイズが増加します。3バイト(24ビット)の入力が4つのBase64文字(各6ビット)に変換されるためです。例えば、1MBのファイルはBase64エンコード後に約1.33MBになります。
標準Base64は+と/文字を使用しますが、Base64URLはURLとファイル名で安全に使用できるよう、これらを-と_に置き換えます。またパディング文字(=)を省略することが多いです。JWTトークンやURLクエリパラメータではBase64URLエンコードが使用されます。