Base64エンコード

テキストをBase64にエンコードします。標準またはURLセーフのアルファベットに対応し、すべてブラウザ内で動作します。

すべてブラウザ内で動作します。アップロード、記録、保存は一切行いません。

Base64は任意のバイト列を、テキストの経路を通り抜けられる文字に変換します。HTTPヘッダー、JSON文字列、メール本文、data URIなどです。これはエンコードであって暗号化ではなく、誰でもすぐに元に戻せます。

仕組み

テキストをUTF-8のバイト列として読み、3バイトごとに64文字のアルファベットの4文字に変換します。長さが3の倍数でない場合、結果は1つか2つの"="でパディングされます。Base64の出力が常に入力より約3分の1長くなるのはそのためです。

RFC 4648のURLセーフアルファベットは"+"と"/"を"-"と"_"に置き換え、パディングを省きます。そのため、値を再エスケープせずにクエリ文字列やファイル名に入れられます。JSON Web Tokenはこの方式を使っています。

例

ケース 入力 結果
Basic認証の資格情報 aladdin:opensesame YWxhZGRpbjpvcGVuc2VzYW1l
アクセント付きのテキスト(UTF-8のバイト列からエンコード) café Y2Fmw6k=

よくある質問

Base64でデータは保護されますか?

まったく保護されません。鍵も秘密もない、元に戻せるエンコードです。エンコードしたものを目にした人は誰でも読み戻せます。このページでもワンクリックでできます。

出力が入力より長くなるのはなぜですか?

出力の4文字で入力の3バイトを運ぶので、結果は約33%大きくなり、さらに最大2文字のパディングが加わります。このオーバーヘッドは、テキストしか通さない経路でバイナリデータを運ぶための代償です。

どのアルファベットを選べばよいですか?

本文やヘッダーで送るものには標準を。値をURL、ファイル名、JWTに入れる場合はURLセーフを選んでください。そうすれば"+"、"/"、"="をさらにパーセントエンコードする必要がありません。

知っておきたいこと

  • すべてブラウザ内で処理されます。貼り付けた内容はアップロードも記録も保存もされません。

出典

開発者向けのすべてのツール