無料ツール

    Base64 エンコーダー/デコーダー

    テキストをBase64でエンコードしたり、Base64文字列をデコードしたりします(URL対応の形式も含みます)。

    Base64エンコード

    Base64エンコーディングとは何ですか?

    Base64は、64種類の印刷可能なASCII文字(A–Z、a–z、0–9、+、/)を用いてバイナリデータを表現する、バイナリからテキストへのエンコード方式です。 JSON、XML、HTML、電子メール(MIME)、データURIなどのテキストベースの形式にバイナリデータを埋め込むために広く使用されています。

    このツールの使用場面

    テキストのみの通信経路にバイナリ値を埋め込む必要がある場合は、いつでもこのBase64ツールをご利用ください。Basic認証ヘッダーの生成、JWT署名キーのエンコード、小さなアイコンをデータURIとして埋め込み、システム間でTLS証明書をコピーする場合、あるいはBase64エンコードされたブロブを返すAPIペイロードのデバッグなど、さまざまな場面で活用できます。 すべてがブラウザ上でローカルに実行されるため、認証情報や機密性の高いペイロードを、サードパーティのサーバーに送信することなく貼り付けることができます。

    標準とURLセーフなBase64の比較

    標準のBase64では「+」と「/」の文字が使用されますが、これらはURLでは予約文字として扱われます。URLセーフBase64では、これらを「-」と「_」に置き換え、末尾の「=」パディングを削除するため、クエリ文字列やファイル名での使用に安全です。

    一般的な利用例

    • HTTPヘッダーでの転送用にAPIキーとトークンをエンコードする
    • HTMLおよびCSSで小さな画像をデータURIとして埋め込む
    • 電子メールの添付ファイルのエンコード(MIME Base64)
    • JSONペイロードへのバイナリデータの格納
    • デバッグのためのJWTトークンのペイロードの解析
    • HTTP 基本認証の認証情報(`Basic <BASE64(user:pass)>>`)の生成
    • マルチパートアップロードが利用できない場合、JSON内にバイナリペイロードをエンコードする
    • JWTトークンの確認 — ヘッダーとペイロードのセグメントは、URL対応のBase64エンコードされています

    Base64 よくある質問

    Base64のエンコードやデコードに関するよくある質問、および実際のシステムでどこに登場するかについて。

    このツールを使用すると、私のデータはサーバーに送信されますか?
    いいえ。エンコードとデコードは、ネイティブの `btoa` および `atob` 関数を通じて、すべてブラウザ内で実行されます。貼り付けたデータは端末の外に出ることは一切ないため、API キー、トークン、認証情報、あるいはネットワーク上を通過させたくないその他の機密性の高いデータについても、このツールを安全にご利用いただけます。
    標準のBase64とURLセーフなBase64の違いは何ですか?
    標準のBase64では、文字セットに`+`と`/`に加え、パディング用の`=`が使用されます。`+`と`/`はURL内で特別な意味を持ち、`=`はしばしばパーセントエンコードされるため、標準のBase64文字列をクエリパラメータやパスに埋め込むと、データが破損する恐れがあります。 URLセーフなBase64では、`+`を`-`に、`/`を`_`に置き換え、末尾の`=`パディングを削除します。これにより、ルーター、ログ行、JWTセグメントを通過する際にも変更されない値が生成されます。
    Base64エンコードされたデータは、なぜ元のデータよりも約33%大きくなるのでしょうか?
    Base64は、3バイト(24ビット)の入力データを4文字の出力データ(各文字が6ビットを格納)に圧縮します。この比率は正確に4/3 ≈ 1.333であり、入力の長さが3の倍数でない場合は、最大2文字のパディング文字「`=`」が追加されます。 そのため、帯域幅が重要な大規模なバイナリペイロードでは Base64 の使用を避け、代わりにバイナリ対応のトランスポート(マルチパートアップロード、gRPC など)を使用すべきです。
    Base64を暗号化に使用することはできますか?
    いいえ。Base64はエンコーディングであり、暗号化ではありません。出力を見た人なら誰でも、簡単に元のバイト列に復元することができます。 機密データを保護する必要がある場合は、まず暗号化(AES、ChaCha20-Poly1305、またはlibsodiumのような高水準のツール)を行い、テキストのみの通信経路で転送する必要がある場合に限り、その暗号文をBase64エンコードしてください。
    復号したテキストに文字化けが発生するのはなぜですか?
    よくある原因が2つあります。まず、転送中にエンコードされた値が破損している可能性があります。Base64は扱いが難しく、1文字でも変わると通常は異なるバイト列になります。 次に、ソースのバイトがUTF-8テキストではない可能性があります。このツールはUTF-8文字列であることを前提にデコードを行います。元のデータがバイナリファイル(画像、PDF、暗号化されたBLOBなど)だった場合、結果はノイズのように見えますが、これは想定内の挙動です。デコードされた出力をファイルに保存し、適切なビューアで開いてください。
    画像のようなバイナリファイルをエンコードするにはどうすればよいですか?
    ブラウザ `btoa` は文字列入力を必要とするため、バイナリデータの場合、ファイルのテキスト表現をこのツールに貼り付けるだけでは不十分です。PNG/JPEG/PDF などのファイルについては、小さなスクリプトでブラウザの File API を使用するか、macOS/Linux では `Base64 < image.png` を実行してください。 生成された文字列は、HTMLの``データURIに直接埋め込むことができます。

    インフラを24時間365日監視する

    Xitoringの監視プラットフォームを活用して、サーバー、API、およびサービスの稼働を維持しましょう。

    無料モニタリングを開始する