Base64 エンコード — ブラウザでテキストを Base64 にエンコード
テキスト文字列を Base64 にエンコードします。UTF-8 と Latin-1 の入力に対応し、すべてブラウザ内で動作。アップロード・アカウント・制限は一切ありません。
Base64 エンコードは Web よりも古くから存在しています —— 2006 年の RFC 4648 で仕様化されましたが、1996 年の MIME メール添付ですでに使われており、さらに前は uuencode でも使われていました。その役割は限定的です:任意のバイト列を、印刷可能な ASCII 文字列に変換し、テキスト専用のチャネルでも確実に通過できるようにします。暗号化ではありません(誰でもデコードできます)、圧縮でもありません(出力は常に入力より 33% 大きくなります)、ハッシュでもありません(エンコードは完全に可逆です)。正確な位置付けは、Base64 は quoted-printable や hex のようなトランスポートエンコードであり、テキストを扱うすべてのシステムが追加設定なしで Base64 を扱えるため、その居場所を得ているということです。
エンコードの仕組み自体は機械的です:入力バイトを 3 つずつ取り、各 24 ビットを 4 つの 6 ビット値として扱い、64 文字のアルファベット(A-Z、a-z、0-9、+、/)から各 6 ビット値を参照し、入力長が 3 の倍数でない場合は = 文字で出力をパディングします。アルゴリズムはこれで全てです。このようなツールが存在する理由は、エンコードが単独のステップであることはほとんどないためです —— 入力は通常、何らかの特定の文字エンコード(UTF-8、Latin-1、Windows-1252)におけるテキストであり、出力は通常、追加ルールを持つ送り先(URL-safe variant、折り返し、MIME 準拠のパディング)に向かうからです。これらすべてを手動で正しく扱うのが、このツールが取り除く手間です。
最後に引き継ぎのヒントです:エンコードしたペイロードを URL やファイル名に入れる場合は、URL 内で特別な意味を持つ +、/、= を避けるため URL-safe Base64 に切り替えてください。ペイロードを JWT や SAML アサーションに入れる場合は、JWT 専用ツールが Base64URL バリアントをネイティブに理解しているため、一手間省けます。バイナリデータ(画像、証明書)をエンコードする必要がある場合は、画像専用ツールを使用してください —— ファイルが誤ったタイプとして開かれることなく、バイナリからテキストへの変換を自動で行います。
使い方
テキストを入力または貼り付ける
入力エリアにテキストを入れてください。複数行にも対応しており、改行文字は Base64 標準に従って `Cg==` にエンコードされるため、入力の各行が出力の 1 行に対応します。
入力エンコード方式を選択する
デフォルトは UTF-8 で、Web コンテンツの大半をカバーします。ソーステキストが古い Web ページ、メール件名、Unicode 登場前のレガシーデータベース向けの場合は、Latin-1 に切り替えてください。
結果をコピーまたはダウンロードする
Base64 をクリップボードにコピーするか、.b64 ファイルとしてダウンロードできます。出力は入力の空白を保持するため、複数行のテキストも予期せぬことなく往復できます。
よくある質問
エンコーダーは Unicode 文字を扱えますか?
はい —— UTF-8 がデフォルトで、すべての Unicode 文字を正しく処理します。エンコーダーはまず各文字を UTF-8 バイト列に変換し、そのバイト列を Base64 エンコードします。中国語、アラビア語、絵文字も問題なく往復できます。
URL セーフ variant とは何ですか?
標準の Base64 は `+`、`/`、`=` を使用しますが、これらはクエリ文字列内で URL エンコードが必要になります。URL-safe Base64(RFC 4648 §5)はこれらを `-`、`_` に置き換え、パディングを削除します。オプションを切り替えて切り替えてください。
エンコード後の出力はどのくらいのサイズですか?
Base64 は入力を正確に 4/3(33% のオーバーヘッド)に拡張します。100 バイトの文字列は 136 文字の Base64 文字列になり、`=` パディング文字が追加されて長さが 4 の倍数に丸められます。
バイナリファイルもエンコードできますか?
テキストエンコーダーはテキスト入力を想定しています。バイナリファイル(画像、PDF、音声)の場合は、画像には Image-to-Base64 ツールを、その他の形式はまずファイルからテキスト安全な hex ダンプに変換し、その hex 文字列をエンコードしてください。
出力に改行は付与されますか?
いいえ —— デフォルトでは出力は途切れない 1 行です。標準 MIME エンコードでは 76 文字で折り返されます。メール添付用の variant が必要な場合は、設定内の折り返しオプションを切り替えてください。
制限事項
- テキスト入力のみエンコーダーは UTF-8 または Latin-1 のテキストを受け付けます。バイナリペイロード(画像、PDF、音声)は別のツールが必要です —— 画像には Image-to-Base64 を、その他の形式はまず hex エンコードしてください。
- 33% のサイズオーバーヘッドBase64 は常に入力を 4/3 に拡張します。1 KB のテキストファイルはエンコード後 1.37 KB になります。これは任意のバイトを 64 文字の ASCII アルファベットに収めるためのコストであり、圧縮オプションはありません。
- 整合性チェックなしBase64 は可逆エンコードであり、ハッシュではありません。有効な Base64 文字列をデコードすると、元のバイトがそのまま得られます。改ざん検出が必要な場合は、Base64 とハッシュツールの SHA-256 ハッシュを組み合わせて使用してください。
プラットフォーム別の注意点
- macOS
- macOS にはターミナルに `base64` が CLI フォールバックとして付属しています。ターミナルを開きたくない場合や、CLI ではフラグを必要とする Unicode 処理が必要な場合は、このブラウザツールが適しています。
- Windows
- PowerShell の `[System.Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('text'))` が CLI での同等手段です。ブラウザツールは、シングルクォートや特殊文字を含むペイロードでクォートの問題を回避できます。
- Linux
- GNU coreutils の `base64` では `-w 0` を使って折り返しを無効にできます。ブラウザツールは、チャットウィンドウ・メール・ドキュメンテーションページからコピーしたテキストに適しています —— ターミナルに再入力するのは現実的ではありません。
- Web
- 完全にクライアントサイドで動作します。ページの読み込み後はオフラインでも動作します。コマンドラインツールをインストールできない制限された環境でアドホックなエンコードを行う際に便利です。