Base64エンコーダー
テキストやファイルを瞬時にBase64テキストに変換します。
ブラウザ内で動作します。ファイルが端末から出ることはありません。
- テキストまたはファイル入力
- URLセーフオプション
- アップロードなし
Base64のエンコード方法
- テキストを貼り付けるか、ファイルモードに切り替えてファイルをドロップします。
- リンクやファイル名で使う場合はURLセーフをオンにします。
- 結果をコピーするかテキストファイルとしてダウンロードします。
Base64エンコードの仕組み
RFC 4648は、A-Z、a-z、0-9、+、/という64種類の文字と、末尾のパディング用の=から成るBase64のアルファベットを定めています。
3バイトの入力は24ビットで、Base64の1文字が6ビットを表すため、入力3バイトごとに出力4文字になります。入力の長さが3の倍数でない場合は、最後のグループに1つか2つの=記号でパディングされます。
標準とURLセーフのアルファベットの違い
| 位置 | 標準(RFC 4648) | URLセーフ(RFC 4648 §5) |
|---|---|---|
| 62番目の文字 | + | - |
| 63番目の文字 | / | _ |
| パディング | 末尾の= | 通常は省略 |
URLセーフなBase64は、パス区切りと誤解されがちな/など、URLやファイル名でエスケープが必要な文字を避けます。
Base64が使われる場面
- データURL。別ファイルにせず、画像やフォントをCSSやHTMLに直接埋め込める。
- メールの添付ファイル。MIME(RFC 2045)はメール本文にプレーンテキストしか許可していないため。
- JSON Web Tokenや多くのAPIペイロード。JSONには生のバイナリデータを保持する手段がないため。
- Basic HTTP認証ヘッダー。ユーザー名とパスワードを1つのBase64文字列として送信する。
Base64エンコードのFAQ
Base64エンコードとは何ですか?
Base64は、64種類の安全な文字(A-Z、a-z、0-9、+、/)を使ってあらゆるバイト列をプレーンテキストに変換します。これにより、メールやJSONのようなテキストのみのシステムでもバイナリデータをやり取りできます。
出力はどのくらい大きくなりますか?
Base64テキストは元のバイト列よりおよそ33%大きくなります。3バイトごとに4文字になるためです。
URLセーフとは何ですか?
+と/を-と_に置き換え、末尾の=パディングを省きます。これにより、エスケープなしでURLやファイル名にそのまま使えます。
ファイルはどこかにアップロードされますか?
いいえ。エンコードはブラウザ内で行われるため、ファイルやテキストが端末から出ることはありません。
Base64が64種類の文字しか使わないのはなぜですか?
Base64はビットを6個ずつまとめて扱い、2の6乗は64であるため、6ビットで表せるすべての値が1つの文字、数字、+、/のいずれかに対応します。この文字セットはJSON、XML、メールのようなプレーンテキスト形式に安全に入れられます。
非常に大きなファイルもエンコードできますか?
できますが、Base64テキストは元のファイルよりおよそ3割多くメモリを使い、結果が非常に大きいとブラウザによってはコピーやダウンロードが遅くなることがあります。数十メガバイトまでのファイルであれば問題なく動作します。