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は小規模データ(アイコン、設定値、認証トークンなど)に適しています。
大容量ファイル(数MB以上)にBase64を適用するとメモリと帯域幅の無駄が大きくなるため、 可能であればマルチパートアップロードやバイナリ転送を使用することをお勧めします。 Base64は小規模データ(アイコン、設定値、認証トークンなど)に適しています。
セキュリティに関する注意
Base64はエンコードであり、暗号化ではありません。 Base64エンコードされたデータは誰でも即座にデコードできます。
- パスワード、APIキー、個人情報などの機密データをBase64だけで保護しないでください。
- HTTP Basic Authは必ずHTTPSと併用してください。Base64エンコードされた認証情報はネットワーク上で容易に傍受される可能性があります。
- JWTトークンのペイロードはBase64URLエンコードされており、誰でも読めます。機密情報をペイロードに含めないでください。
- 実際のセキュリティが必要な場合は、AES-256、RSA、bcryptなどの適切な暗号化/ハッシュアルゴリズムを使用してください。
よくある質問
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エンコードが使用されます。