Base64エンコーダー

テキストやファイルを瞬時にBase64テキストに変換します。

ブラウザ内で動作します。ファイルが端末から出ることはありません。

Base64のエンコード方法

  1. テキストを貼り付けるか、ファイルモードに切り替えてファイルをドロップします。
  2. リンクやファイル名で使う場合はURLセーフをオンにします。
  3. 結果をコピーするかテキストファイルとしてダウンロードします。

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割多くメモリを使い、結果が非常に大きいとブラウザによってはコピーやダウンロードが遅くなることがあります。数十メガバイトまでのファイルであれば問題なく動作します。

関連ツール