🔐

Base64 エンコード / デコード

無料のオンラインBase64エンコーダーとデコーダー。テキストやファイルをBase64形式にエンコード、またはBase64を読み取り可能なテキストにデコード。

入力ソース

ファイルをドロップするか参照

結果出力

プライベート&安全

処理はすべてローカルブラウザ内で行われます。データがサーバーにアップロードされることはありません。

ファイル対応

画像、ドキュメント、バイナリファイルを簡単にBase64文字列に変換。

オフライン対応

一度読み込めばインターネット接続なしで動作し、外出先でも安心して使用できます。

よくある質問

Base64 エンコーディングとは何ですか?何に使われますか?

Base64 は、バイナリデータを 64 文字(A-Z、a-z、0-9、+、/)を使って ASCII 文字列形式に変換するバイナリ-to-テキストのエンコード方式です。主に HTTP や SMTP のようなテキストベースのプロトコルや、JSON ペイロード内でバイナリデータを転送するために使用されます。一般的な用途としては、MIME によるメール添付、HTML や CSS へのデータ URL としての画像埋め込み、JSON Web Token(JWT)内のペイロードエンコード、テキストベースのデータベースカラムへのバイナリデータ保存などがあります。

Base64 は暗号化ですか?安全ですか?

いいえ。Base64 はエンコード方式であり、暗号化ではありません。Base64 エンコードされた文字列を持っている人は、鍵やパスワード、シークレットを必要とせずに、すぐに元のデータにデコードできます。Base64 は機密性、整合性、認証のいずれも提供しません。これは、同じデータを別の形式で表現する方法だと考えてください — 英語をモールス信号に変換するようなものです。機密データを保護する必要がある場合は、まず適切な暗号化アルゴリズム(AES など)を使用し、その後に転送のために暗号化されたバイトを Base64 でエンコードすることもできます。

Base64 が時々 = や == で終わるのはなぜですか?

= 文字はパディングです。Base64 は入力データを 3 バイト(24 ビット)のグループで処理し、グループごとに 4 文字の Base64 文字を生成します。入力の長さが 3 バイトの倍数でない場合、エンコードでは出力が 4 文字の倍数になるようにパディングの = 文字を追加します。2 バイトが残っている場合は = が 1 つ追加され、1 バイトだけ残っている場合は = 文字が 2 つ追加されます。たとえば、"Man"(3 バイト)はパディングなしで "TWFu" にエンコードされますが、"Ma"(2 バイト)は "TWE=" に、"M"(1 バイト)は "TQ==" にエンコードされます。

Base64 はデータを大きくしますか?どれくらいのオーバーヘッドが追加されますか?

はい、Base64 エンコーディングはデータサイズを約 33% 増加させます。バイナリ入力の 3 バイトごとに、出力は 4 バイトになり、さらに任意のパディングが追加されます。つまり、3 MB のバイナリファイルは、Base64 エンコードするとおおよそ 4 MB になります。これが、テキストのみのチャネルでバイナリデータを送信できるようにするためのトレードオフです。他のバイナリ-to-テキストエンコーディングと比較すると、Base64 は比較的効率的です — たとえば 16 進エンコーディングは 100% のオーバーヘッドを追加します。

標準の Base64 と Base64url の違いは何ですか?

標準の Base64 はアルファベットに + と / を使用し、パディングに = を使用します。Base64url(URL セーフな Base64)は + を - に、/ を _ に置き換え、通常はパディングを省略します。これにより、Base64url は追加のパーセントエンコーディングなしで URL、クエリパラメータ、ファイル名で安全に使用できます。Base64url は RFC 4648 で定義されており、JSON Web Token(JWT)、OAuth トークン、Web API で広く使用されています。たとえば、Pj4+Pz8/Pw== のような標準の Base64 文字列は、Base64url では Pj4-Pz8_Pw になります。

Base64 データ URL とは何ですか?HTML と CSS でどのように使われますか?

データ URL は、データを Web 文書に直接埋め込む URI スキームです。画像の場合、形式は data:image/png;base64,iVBORw0KGgo... です。これは HTML の <img> タグや CSS の background-image プロパティでファイル URL の代わりに使用できます。データ URL は画像を読み込むための個別の HTTP リクエストを不要にし、小さなアセット(通常 10 KB 未満)のパフォーマンスを向上させることができます。ただし、HTML/CSS のファイルサイズが約 33% 増加し、ブラウザが画像を個別にキャッシュするのを防ぎます。

あらゆるファイルを Base64 に変換できますか?

はい — テキスト、画像、音声、動画、PDF、圧縮アーカイブなど、あらゆるバイナリデータを Base64 にエンコードできます。プロセスは同じです。ファイルの生のバイトを読み取り、Base64 エンコーディングアルゴリズムを適用します。Base64 文字列をデコードすると、正確な元のバイトが戻ってきます。これがメール添付の仕組みです — バイナリファイルは SMTP で送信される前に Base64 エンコードされ、受信側で元のファイルにデコードされます。

JavaScript で Base64 をエンコードするとき、Unicode 文字(絵文字や中国語テキストなど)をどのように扱えばよいですか?

組み込みの btoa() 関数は Latin-1 文字(1 バイト文字)のみで動作します。絵文字、中国語文字、その他のマルチバイト文字を含む Unicode 文字列の場合は、TextEncoder API を使用して最初にバイトに変換する必要があります: Node.js では、Buffer クラスが Unicode をネイティブに処理します: Buffer.from('Hello 你好 🚀').toString('base64') は特別な処理なしで動作します。

関連ツール

Base64 エンコード / デコード - CoolTool