Base64エンコーダー / デコーダー
テキストやデータをBase64にエンコード、またはBase64文字列をプレーンテキストにデコードします。サーバーには何も送信されず、すべてローカルで処理されます。
Base64エンコーディングとは
Base64はバイナリデータをASCII文字列として表現するバイナリ→テキスト変換方式です。HTML/CSSへの画像埋め込み(data URI)、URLへのデータ埋め込み、メール(MIME)などのテキスト専用チャネルでのバイナリ送信、バイナリをそのままは扱えないJSONやXMLへのバイナリ格納などに広く使われます。入力3バイトごとに4文字のASCIIへ変換されるため、Base64は常に元のデータより約33%大きくなります。
Base64を使う場面
CSSやHTMLに小さな画像をインラインで埋め込んでHTTPリクエスト数を減らす(代わりにキャッシュ粒度が下がります)。プロトコルがテキストしか許容しないJSON APIでバイナリ添付をエンコードする。URLエンコーディングと組み合わせて特殊文字をURLパラメータに含める。テキストしか扱えないデータベース・ログ・設定ファイルにバイナリを保存する、などです。
Base64とURLエンコーディングの違い
両者は目的が異なります。Base64は任意のバイナリをASCIIへ変換するものです。URLエンコーディング(パーセントエンコーディング)はURLで無効な文字をエスケープするものです。互換性はなく、バイナリをリンクに埋め込むときはBase64→URLエンコードという二段構えがよく使われます。URLセーフな変換にはURLエンコーダー / デコーダーをご利用ください。
主な用途
- HTMLやCSSへの画像埋め込み:画像をBase64データURIに変換してHTMLやCSSに直接インライン化し、別途HTTPリクエストを不要にします。
- JWTトークンのデバッグ:JWTのヘッダーとペイロードはBase64URLエンコードされています。専用のJWTデバッガーなしにデコードしてクレームを確認できます。
- メール添付ファイルのエンコード:MIME準拠のメールシステムではバイナリ添付をBase64エンコードする必要があります。送信前にエンコード結果を確認できます。
- APIリクエスト・レスポンスの検査:一部のREST APIはバイナリデータ、画像、暗号化キーをBase64でエンコードします。デコードして生の内容を確認できます。
- JSONへのバイナリデータ格納:JSONはバイナリをネイティブに扱えません。Base64はJSONペイロードにファイル内容やバイト配列を埋め込む標準的な方法です。
- 環境変数のエンコード:シークレットキーや証明書は.envファイルやCI/CDパイプラインでBase64エンコードして安全に保存・転送されます。
- ウェブフォントの埋め込み:カスタムウェブフォントをBase64エンコードしてCSSファイルに直接埋め込み、制限環境でのCORSの問題を回避できます。
FAQ
Base64は暗号化ですか?
いいえ。Base64はエンコーディングであって暗号化ではありません。キーもパスワードもなく誰でもデコードできます。機密データの保護には絶対に使わず、Base64化したデータも平文と同等に扱ってください。
Base64にすると容量が増えるのはなぜ?
入力3バイトごとに出力4文字になる(1文字あたり8ビットではなく6ビット)ため、約33%のオーバーヘッドが生じます。入力の長さが3の倍数でないときに末尾を「=」で埋めるパディングによって、さらに若干のオーバーヘッドが加わります。
Base64はUnicodeに対応していますか?
はい。このツールはBase64化する前にテキストをUTF-8でバイト列化するため、ñ・ü・日本語などの文字も正しく扱えます。デコード時はBase64デコードの後にバイト列をUTF-8として解釈することで元に戻します。
このツールはデータをどこかに送信しますか?
いいえ。すべてのエンコードとデコードはJavaScriptを使ってブラウザ内で完結します。データがデバイスの外に出ることはありません。
Base64エンコードはデータを暗号化しますか?
いいえ。Base64はエンコード方式であり、暗号化ではありません。エンコードされた文字列は誰でも簡単に元に戻せます。機密データの保護にBase64を使わないでください。
数字で見る
- Base64エンコードは元のバイナリ入力より約33%データサイズが増加します
- Base64のアルファベットとエンコードルールはRFC 4648(2006年)で定義されています
- Base64は世界中のほぼすべてのメールシステムでMIME経由でバイナリ添付ファイルを安全にエンコードするために使用されています
- JSON Web Tokens(JWT)はBase64URLを使用しています —
+と/を-と_に置き換えたURLセーフな変種です