開発者ツール
Base64 エンコード / デコード
テキストを Base64 形式にエンコード、または Base64 文字列をテキストにデコードします。メールの添付ファイル・JWT トークン・データ URI など幅広い用途で使われているエンコード形式です。
[[ labels.error_invalid ]]
Tips
- Base64 という名前は、エンコードに使う文字種が 64 種類(A–Z / a–z / 0–9 / + / /)であることに由来します。出力末尾の
=はバイト数を 3 の倍数に揃えるためのパディング文字です。 - JWT(JSON Web Token) はヘッダー・ペイロード・署名を Base64URL(
+→-、/→_)でエンコードして.で結合した形式です。URL セーフな変形版のため、このツールの出力とは一部文字が異なります。 - HTML/CSS で画像をファイルなしに埋め込む データ URI(
data:image/png;base64,iVBOR...)も代表的な用途です。小さいアイコンのインライン化などに使われます。 - Base64 は暗号化ではなく エンコード です。誰でも即座に元の文字列に戻せるため、秘密情報の保護には使えません。
よくある質問
いいえ。Base64 はエンコードであり暗号化ではありません。鍵なしで誰でも即座にデコードできます。機密情報の保護には BCrypt・AES など専用の暗号化アルゴリズムを使用してください。
はい。このツールは内部で UTF-8 エンコードを使用しているため、日本語・中国語・絵文字など任意の Unicode 文字を正しく変換できます。
Base64 は 3 バイトを 4 文字に変換するため、元のサイズより約 33% 大きくなります。
メールの添付ファイル(MIME)、HTML のデータ URI(
data:image/png;base64,...)、JWT 認証トークン、API でのバイナリデータ転送などに広く利用されています。余談ですが ― Base64 とメールと URL の衝突
Base64 が普及した最大のきっかけは 電子メール です。1970〜80 年代の SMTP は 7 ビット ASCII しか扱えず、バイナリデータを送ると文字化けが起きました。そこで MIME がバイナリを Base64 でテキスト化して転送する仕組みを導入し、現在も添付ファイルの内部表現として使われています。
Base64 の文字セットには + と / が含まれますが、URL の中でこれらは特殊な意味を持ちます。この問題を解決するために Base64URL(+→-、/→_、パディングなし)という変形版が作られました。JWT や OAuth のトークンが Base64URL を使うのはこのためです。
3 バイトのバイナリが 4 文字の Base64 に変換されるため、データ量は約 33% 増加します。画像を丸ごとデータ URI にすると HTML が膨れ上がる原因がここにあります。大きな画像のインライン化はページ速度の観点から推奨されません。