Base64エンコード/デコードツール

入力サイズ-
出力サイズ-
サイズ比-

Base64の概要・基礎知識

Base64は、バイナリデータを64種類の英数字(A〜Z、a〜z、0〜9、+、/)とパディング用の「=」だけで表現する標準的なエンコード方式で、RFC 4648で規定されています。バイナリのままだと文字化けや改行コード変換で壊れてしまう環境(メールのSMTP、HTTPヘッダー、JSON、URL)でも安全に運べる「テキスト化された箱」として使われます。本ツールはエンコード・デコードを双方向に行え、URLセーフ表記(+/→-_)にも対応します。文字列はUTF-8として処理されるため、日本語の絵文字や記号も正しく往復変換できます。

Base64の特徴と仕組み

項目内容
エンコード後のサイズ元データの約133%(4/3倍)。3バイトを4文字で表現するため
使用する文字A〜Z(26)、a〜z(26)、0〜9(10)、+、/、= の計64+1種
可逆変換暗号化ではなく単なる符号化。誰でもデコードできる
パディング「=」を末尾に付けて4の倍数文字に揃える
URLセーフ「+」→「-」、「/」→「_」に置換し、URLやファイル名でも安全

使い方の流れ

  1. 「エンコード」または「デコード」のモードを選択します。
  2. 入力欄にテキストを入力するか、Base64文字列をペーストします。
  3. URLや認証ヘッダーに使う場合は「URLセーフ(+/ → -_)」をオンにします。
  4. 結果欄に変換結果が表示され、入力サイズ・出力サイズ・サイズ比も併記されます。
  5. 「コピー」で結果を取得、「入力↔結果を入れ替え」で往復確認、必要なら「クリア」で初期化できます。

こんな場面で使う

  • Basic認証ヘッダー作成:HTTPのAuthorizationヘッダーで Basic ユーザー:パスワード をエンコードして送信する標準方式です。
  • 画像のdata:URI埋め込み:CSSやHTMLに小さなアイコン画像を data:image/png;base64,iVBOR... 形式で直接埋め込み、HTTPリクエスト数を減らせます。
  • JSON内のバイナリ受け渡し:JSONは生のバイナリを格納できないため、画像・PDF・暗号鍵をBase64文字列として運ぶのが定番です。
  • JWTトークンの中身確認:JWTは「ヘッダー.ペイロード.署名」をURLセーフBase64で繋いだ形式。各部をデコードして中身を覗けます。
  • メールの添付ファイル:MIMEエンコードでバイナリ添付がBase64化されて送られます。本ツールでヘッダー部分の解析にも使えます。

使う前に知っておきたい注意点

  • Base64は暗号化ではありません。誰でもデコードして元データに戻せるため、パスワードや個人情報の保護用途には使わないでください。
  • エンコード後のサイズは元の約4/3倍に増えます。大きなファイルをBase64化するとメモリ・通信量を圧迫することがあります。
  • 標準Base64の「+」「/」「=」はURLや一部のファイル名で問題を起こします。URL用途では必ずURLセーフ版を使ってください。
  • 本ツールはUTF-8でエンコード・デコードします。Shift_JISやEUC-JPの文字列は事前にUTF-8へ変換してください。
  • 巨大なファイルは btoaatob の制約でブラウザがフリーズすることがあります。数MB以上はサーバー側のCLI(base64コマンド)が安全です。

用語の補足

  • パディング:Base64文字列の末尾を4の倍数長にするための「=」。1〜2文字付きます。URLセーフ版では省略されることもあります。
  • data:URIdata:[mime];base64,... という形式でバイナリをURLとして埋め込む仕組み。HTML/CSS/JavaScriptで広く使われます。
  • btoa/atob:JavaScriptの組み込み関数。それぞれBase64エンコード/デコードに対応しますが、UTF-8文字列を直接扱えない点に注意が必要です。

よくある質問

使えません。Base64はエンコード(符号化)であり、暗号化ではありません。誰でも標準的なツールでデコードして元データに戻せるため、パスワード・APIキー・個人情報の保護には使わないでください。機密データの保護にはAES等の暗号化アルゴリズムを使う必要があります。
本ツールはUTF-8でエンコード・デコードするため、日本語、絵文字、記号などのマルチバイト文字を正しく往復変換できます。例えば「こんにちは」をエンコードして、別環境でデコードしても元の文字列が得られます。
通常のBase64で使われる「+」「/」はURLでは別の意味(スペース、パス区切り)として解釈されてしまいます。URLセーフBase64では「+」を「-」、「/」を「_」に置き換えるため、URLパラメータやファイル名にそのまま使えます。JWTトークンや署名用途で標準的に使われています。
Base64は8ビットのデータを6ビット単位に分割し、それぞれを文字に対応させる仕組みです。3バイトを4文字で表すため、エンコード後のサイズは元の約4/3倍(約133%)になります。1MBのバイナリをBase64化すると約1.33MBになる計算です。
使えます。「ユーザー名:パスワード」(コロン区切り)をエンコードした結果を Authorization: Basic xxx ヘッダーとしてHTTPリクエストに付与します。本ツールで「user:pass」のような文字列を入力すれば、ヘッダーで使う値が即座に得られます。HTTPS通信下でのみ安全に使えます。
JWTは「ヘッダー.ペイロード.署名」の3部構成で、各部分はURLセーフBase64でエンコードされています。本ツールでURLセーフをオンにし、ピリオドで区切られた最初の2部をデコードすると、JSONとして中身を確認できます。署名部分はバイナリのため、デコードしても可読データにはなりません。
いいえ、すべての変換はブラウザで完結し、外部送信は一切ありません。認証情報やAPIキーを含むテキストでも、外部サーバーに記録されることはありません。