Base64エンコード・デコード
テキストとBase64を双方向に変換します。エンコード・デコードどちらにも対応。
他のツール
Base64エンコードとは?
Base64は、バイナリデータ(画像・ファイルなど)をASCII文字列に変換するエンコーディング方式です。A-Z、a-z、0-9、+、/の64種類の文字とパディング用の「=」を使って表現します。
もともとは電子メール(MIME)でバイナリファイルを送信するために開発されましたが、現在ではWeb開発のさまざまな場面で活用されています。例えば、APIでのデータ送受信、HTMLへの画像埋め込み(Data URI)、認証トークンの生成などが代表的な用途です。
Base64は暗号化ではなく、単なるデータの変換方法です。誰でも簡単にデコード(復元)できるため、パスワードや機密情報の保護には使用できません。セキュリティ目的にはAESなどの暗号化方式を利用しましょう。
使い方
- テキストを入力:上部の「テキスト(平文)」欄に、Base64に変換したい文字列を入力します。日本語にも対応しています。
- エンコード:「エンコード」ボタンをクリックすると、下部のBase64欄に変換結果が表示されます。
- デコード:逆にBase64文字列を復元したい場合は、下部の欄にBase64を入力して「デコード」ボタンをクリックします。
- コピー:「Base64をコピー」または「テキストをコピー」ボタンで結果をクリップボードにコピーできます。
活用シーン
- APIのリクエストボディやレスポンスに含まれるBase64データのデコード確認
- Basic認証のユーザー名:パスワードをBase64に変換してHTTPヘッダーに設定
- HTMLやCSSに小さな画像をData URIとして埋め込む際の変換
- メールに添付されたBase64エンコードされたファイル内容の確認
- JWTトークンのペイロード部分をデコードして中身を確認
- 他のエンコーディング方式と比較してデータの内容を検証
Base64が使われる場面一覧
Base64エンコーディングは、さまざまな技術分野で活用されています。以下の表は、代表的な使用場面とその目的をまとめたものです。
| 使用場面 | 具体例 | 目的・理由 |
|---|---|---|
| メール添付(MIME) | 画像・PDFなどの添付ファイル | SMTPはテキストベースのため、バイナリをASCIIに変換して送信 |
| Data URI | data:image/png;base64,... |
小さな画像をHTMLやCSSに直接埋め込み、HTTPリクエストを削減 |
| Basic認証 | Authorization: Basic dXNlcjpwYXNz |
ユーザー名:パスワードをBase64でエンコードしてHTTPヘッダーに設定 |
| JWT(JSON Web Token) | ヘッダー・ペイロード部分 | JSONデータをURL安全なBase64url形式で表現 |
| API通信 | REST APIのリクエスト/レスポンス | バイナリデータをJSON内に安全に含めるため |
| XML / SOAP | バイナリデータの埋め込み | XMLではバイナリが直接扱えないため、Base64に変換して格納 |
| 証明書・暗号鍵 | PEM形式(-----BEGIN CERTIFICATE-----) |
バイナリのDERデータをテキスト形式で保存・配布するため |
| QRコード生成 | 画像データの受け渡し | 生成したQRコード画像をBase64でWebページに表示 |
文字コードとBase64の関係
Base64エンコードでは、入力テキストをまず特定の文字コードでバイト列に変換し、そのバイト列をBase64に変換します。文字コードの違いにより、同じ文字でもBase64の結果が異なる場合があります。
| 文字コード | 特徴 | 1文字あたりのバイト数 | 主な用途 |
|---|---|---|---|
| UTF-8 | 可変長。ASCII互換で世界標準 | 1〜4バイト | Web全般、API、現在の標準 |
| ASCII | 英数字・記号のみ対応 | 1バイト | 英語圏の基本テキスト |
| Shift_JIS | 日本語固有。Windows環境で普及 | 1〜2バイト | レガシーな日本語システム |
| EUC-JP | 日本語固有。Unix系で使用 | 1〜3バイト | 古いLinux/Unixシステム |
| ISO-8859-1 | 西ヨーロッパ言語向け | 1バイト | レガシーな欧米システム |
| UTF-16 | 固定長(BMP範囲)。JavaやWindowsの内部表現 | 2〜4バイト | Java、Windows API内部 |
本ツールではUTF-8を使用してBase64エンコード・デコードを行います。日本語を含むすべてのUnicode文字に対応しているため、一般的な用途ではそのままお使いいただけます。
Base64変換の仕組み
Base64では、元データの3バイト(24ビット)を6ビットずつ4つに分割し、それぞれを64種類の文字(A-Z, a-z, 0-9, +, /)に変換します。データが3の倍数でない場合は、末尾に「=」(パディング)が付加されます。
| Base64文字 | 値(10進) | Base64文字 | 値(10進) |
|---|---|---|---|
| A-Z | 0〜25 | a-z | 26〜51 |
| 0-9 | 52〜61 | + | 62 |
| / | 63 | = | パディング |
例えば、「ABC」(3バイト = 0x41, 0x42, 0x43)は「QUJD」に変換されます。元データが1バイトや2バイトの場合は、末尾に「==」や「=」が付きます。
よくある質問
Base64とURLエンコードの違いは?
Base64はバイナリデータをASCII文字列に変換する方式で、主にメールやAPIで使われます。一方、URLエンコード(パーセントエンコーディング)はURL内で使用できない文字を%XX形式に変換する方式です。用途が異なるため、場面に応じて使い分けます。
Base64に変換するとデータサイズはどうなる?
Base64に変換すると、元のデータより約33%サイズが増加します。これは3バイトのデータを4文字のASCII文字で表現するためです。大量のデータを扱う場合はサイズ増加に注意が必要です。
Base64は暗号化として安全ですか?
いいえ、Base64はエンコーディング(符号化)であり、暗号化ではありません。誰でも簡単にデコードできるため、パスワードや個人情報などの機密データの保護には使えません。暗号化が必要な場合はAESやRSAなどを使いましょう。
画像をBase64に変換するメリットは?
画像をBase64に変換してData URIとしてHTMLやCSSに直接埋め込むと、HTTPリクエスト数を削減できます。小さなアイコンやロゴに有効ですが、大きな画像ではHTMLファイルのサイズが増大するためおすすめしません。
入力したデータはサーバーに送信されますか?
いいえ、このツールではすべての処理がお使いのブラウザ内で完結します。入力したテキストやBase64データが外部のサーバーに送信されることは一切ありません。安心してご利用ください。