完全無料

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

テキストやファイルをBase64にエンコード・デコードします。ブラウザ上で完結、プライバシー保護、無料です。

このツールについて

Base64 は、64 個の印刷可能な文字 (A ~ Z、a ~ z、0 ~ 9、プラス (+)、およびスラッシュ (/)) を使用し、パディングに等号 (=) を使用してバイナリ データを ASCII テキストとして表すエンコード スキームです。この形式は元々、バイナリ添付ファイルが 7 ビットのクリーンな電子メール転送に耐えられるように設計されましたが、現在では HTML 内のデータ URL、画像データを含む JSON、JWT ペイロード、基本認証ヘッダー、およびバイトを運ぶ必要があるテキストベースのプロトコルなど、数十の用途に拡張されています。

エンコードでは 3 バイトの入力が必要で、4 つの ASCII 文字の出力が生成されます。したがって、出力は入力より 33% 長くなります。これは、バイナリをテキストセーフ形式に適合させるためのコストです。デコードでは、このプロセスをまったく逆に実行し、エンコードされたテキストから元のバイトを復元します。

このツールは両方向を処理します。エンコード モードはテキスト入力 (またはアップロードによるバイナリ ファイル) を受け取り、base64 テキストを生成します。デコード モードは、base64 テキストを受け取り、元のテキストまたはダウンロード可能なバイナリを生成します。 URL セーフ バリアント (+ と / の代わりに - と _ を使用) がトークンと識別子でサポートされています。

Base64 を使用する理由

Base64 は、テキストのみのコンテキストにバイナリ データを埋め込む標準的な方法です。 HTML のインライン画像はデータ URL (data:image/png;base64 など) を使用するため、別のリクエストを行わなくても小さなアイコンをページに同梱できます。画像、証明書、または署名を含む JSON ペイロードは、それらを Base64 文字列としてエンコードします。 JWT トークンは、ドットで区切られた 3 つの Base64 でエンコードされたセグメントです。

Base64 は、8 ビット バイナリを誤って処理するプロトコルの文字処理も正規化します。認証ヘッダー (基本認証では Base64 を使用します)、電子メールの添付ファイル、キーを含む構成ファイル、およびバイナリがパイプラインを確実に通過できないため、多くの API では Base64 が必要です。

使い方

データを貼り付け、方向を選択します。

  1. エンコードまたはデコードを選択します: エンコードは、バイナリまたはテキスト入力から Base64 テキストを生成します。デコードではプロセスが逆になります。
  2. 入力の追加: エンコードするには、テキストを貼り付けるか、バイナリ ファイルをアップロードします。デコードするには、base64 テキストを貼り付けます。このツールは、URL セーフなバリアントを自動的に検出します。
  3. 変換する: ブラウザはエンコードに btoa を使用し、デコードに atob を使用します (非 ASCII テキストの UTF-8 処理を使用)。出力は正確かつ確定的です。
  4. コピーまたはダウンロード: エンコードされたテキストは、URL、JSON、HTML データ URL、または任意のテキストベースのプロトコルに埋め込むことができます。デコードされたバイナリは、検出されたファイル タイプに基づいて適切な拡張子を推測したファイルとしてダウンロードされます。

一般的な使用例

技術的な詳細

Base64 は、入力の 6 ビットごとを 64 の出力文字の 1 つにマップします。 3 つの入力バイト (24 ビット) から 4 つの出力文字が生成されます。入力長が 3 の倍数ではない場合、エンコーダーは 1 つまたは 2 つの等号を追加して、出力を 4 の倍数文字に埋め込みます。

URL セーフな Base64 (RFC 4648 セクション 5 で定義) は、+ を - に、/ を _ に置き換えて、さらにエスケープすることなく URL およびファイル名で安全に使用できる文字列を生成します。 URL セーフなコンテキストでは、埋め込み等号が省略される場合があります。デコーダは通常、両方の形式を受け入れます。

JavaScript の btoa および atob は ASCII を直接処理しますが、非 ASCII 文字列では失敗します。 UTF-8 テキストの場合、コンバーターは TextEncoder/TextDecoder を使用してテキストとバイナリの間で変換し、バイナリを Base64 エンコードします。これにより、絵文字、アクセント付き文字、および非ラテン文字が正しく処理されます。

ベストプラクティス

よくある質問

Base64 エンコーディングは何に使用されますか?
Base64 はバイナリ データを ASCII テキストに変換します。一般的な用途には、HTML (データ URI) への画像の埋め込み、電子メールの添付ファイルのエンコード、JSON API でのバイナリ データの送信、テキスト ベースのデータベースへのバイナリ BLOB の保存などが含まれます。
Base64 エンコーディングはデータを暗号化しますか?
いいえ、Base64 は暗号化ではなくエンコードです。 Base64 文字列は誰でもデコードできます。セキュリティではなく、安全なデータ転送を目的として設計されています。機密データには実際の暗号化 (AES、RSA) を使用します。
Base64 によってファイル サイズが増加するのはなぜですか?
Base64 は入力の 3 バイトごとを 4 つの ASCII 文字として表すため、サイズが約 33% 増加します。これは、バイナリ データをテキスト形式に安全に埋め込むことができるようにするためのトレードオフです。
画像をBase64にエンコードできますか?
はい。画像ファイルをアップロードすると、ツールは HTML または CSS でデータ URI (data:image/png;base64,...) として使用できる Base64 文字列を生成します。
JWT トークンは Base64 ですか?
はい — JWT は、ドットで区切られた 3 つの Base64URL エンコードされたセグメントで構成されます。 1 つ目はヘッダー、2 つ目はペイロード、3 つ目は署名です。
私のデータはサーバーにアップロードされていますか?
いいえ。エンコードとデコードは、btoa、atob、TextEncoder、TextDecoder を使用してブラウザーで行われます。
最大サイズはどれくらいですか?
最大50MB。ブラウザのメモリは、非常に大きな入力に対する実用的なサイズを制限します。
デコードされた出力がゴミのように見えるのはなぜですか?
おそらくソースはテキストではなくバイナリでした。ファイル ダウンロード モードに切り替えてバイナリを取得するか、入力が実際にバイナリではなく Base64 でエンコードされたテキストであることを確認します。