無料ツール

    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エンコードされたBlobを返すAPIペイロードのデバッグなど、さまざまな用途に活用できます。すべてがブラウザ上でローカルに実行されるため、認証情報や機密性の高いペイロードをサードパーティのサーバーに送信することなく、直接貼り付けることができます。

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

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

    主な利用シーン

    • HTTPヘッダーで転送するためのAPIキーやトークンのエンコード
    • HTMLやCSSにData URIとして小さな画像を埋め込む
    • メール添付ファイルのエンコード(MIME Base64)
    • JSONペイロード内へのバイナリデータの格納
    • デバッグのためのJWTトークンペイロードのデコード
    • HTTP Basic認証の認証情報(`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、暗号化されたブロブなど)だった場合、結果はノイズのように見えますが、これは想定内の動作です。 復号された出力をファイルに保存し、適切なビューアで開いてください。
    画像のようなバイナリファイルをエンコードするにはどうすればよいですか?
    ブラウザの `btoa` は文字列入力を必要とするため、バイナリデータの場合はファイルのテキスト表現だけでは不十分です。 PNG/JPEG/PDF などのファイルについては、小さなスクリプトでブラウザの File API を使用するか、macOS/Linux では `base64 < image.png` を実行してください。その結果得られる文字列は、HTML の `` データ URI に直接埋め込むことができます。

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

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

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