Base64ファイルエンコーダー
Base64は、あらゆるバイナリファイルを印字可能なASCII文字列へ変換します。これにより、JSON、YAML、メール本文、SMS、チャットへのコピー&ペーストなど、テキストだけを想定したシステムを通過できます。このエンコーダーはPDF、画像、ZIP、さらには実行ファイルまで任意のファイルを受け取り、data: URIやAPIのペイロード、設定ファイルにそのまま入れられるBase64表現を返します。
ファイルをエンコードする方法
-
1
任意のファイルをエンコーダーへドロップ
すべてのバイナリ形式に対応します。ブラウザが生のバイト列を読み取ります。
-
2
バイト列がBase64でエンコードされる
3バイトごとに、アルファベット`A-Z a-z 0-9 + /`から4つのASCII文字になります。
-
3
出力形式を選ぶ
プレーンなBase64、ブラウザーが報告したMIMEタイプ(未指定時は汎用値)付きの`data:` URI、またはJSON文字列として安全な形式から選べます。
-
4
テキストとしてコピーまたはダウンロード
大きいファイルは`.txt`としてダウンロードし、小さいものはクリップボードへコピーします。
サイズのオーバーヘッド
Base64は3バイトを4文字へ膨らませるため、保存容量とネットワークコストが33%増えます。=によるパディングがさらに数バイトを加えます。おおまかな目安は次のとおりです。
| 入力ファイルのサイズ | Base64テキストのサイズ |
|---|---|
| 1 KB | 1.33 KB |
| 100 KB | 133 KB |
| 1 MB | 1.33 MB |
| 10 MB | 13.3 MB |
大きいバイナリファイルをHTMLやJSONにBase64で埋め込むと、ページの読み込みとパーサーのメモリをすぐに膨らませてしまいます。約10 KBを超えるものは、配信上の制約でどうしても必要な場合だけインラインにしてください。
よくある用途
- データURI, CSSやHTML内の小さなインライン画像:
url("data:image/png;base64,iVBORw0KGgo...")。 - メールの添付, MIMEマルチパート本文では、SMTPで安全に運ぶため添付ファイルをBase64でエンコードします。
- JSONのペイロード, 1回のAPIリクエストで済ませるため、PDFやZIPをJSONのフィールドへ埋め込む場合。
- YAML/設定ファイル, TLS鍵や小さなバイナリデータを設定ファイル内で運ぶ場合。
変種とパディング
RFC 4648の標準Base64アルファベットは、A-Z、a-z、0-9、+、/の64記号です。=はアルファベットの一部ではなく、パディングです。URLセーフな出力(+を-、/を_に置換)には専用の切り替えを使います。パディングは既定で含まれ、無効化できます。
プライバシーについて
ファイルは端末から外に出ません。FileReader APIがブラウザ内でバイト列を読み取り、JavaScriptがエンコードを行います。機密PDF、秘密鍵、未公開素材をエンコードするときに重要です。
よくある質問
エンコーダーで扱えるのは50 MB以下のファイル1つです。Base64の出力は元のファイルより大きく、ブラウザーのメモリに保持されるため、この上限によって過剰なメモリ使用を防ぎます。
URLやファイル名に適したアルファベットが必要な場合に使います。URLセーフなBase64(RFC 4648の5節)は+を-に、/を_に置き換えます。末尾の=を残すかどうかは、別のパディング設定で選べます。
data: URI出力の場合だけ重要です。data:image/png;base64,...は、デコードしたバイト列をどう表示するかをブラウザに伝えます。プレーンなBase64やJSONへの埋め込みでは、MIMEタイプはエンコード済みデータの一部ではありません。
HTMLにはdata:application/pdf;base64,... URLを記述できますが、最新のブラウザーではdata: URLへのトップレベル遷移がブロックされることが多く、ダウンロードの動作もブラウザー間で安定しません。大きな値はURL、メモリ、Content Security Policyの制限に達する場合もあります。確実にダウンロードさせるには、ブラウザーコードでBlobのオブジェクトURLを作成するか、HTTPSでホストしたファイルへリンクしてください。
関連ツール
Atbash暗号エンコーダー
A-ZをZ-Aに対応させるヘブライ系の換字式暗号、Atbashでテキストをエンコードまたはデコードできます。同じ操作で暗号化と復号ができます。
AES暗号化 / 復号
OpenSSLのAES暗号方式で低リスクのテキストを暗号化・復号します。パスフレーズはSHA-256でハッシュされ、Base64出力はIVと暗号文です。
bcryptジェネレーター
平文パスワードからbcrypt hashを生成します。cost factorは4から14まで調整でき、Laravel、Django、Node、PHPと互換性があります。
Base85エンコーダー・デコーダー
Adobe Ascii85(PostScript/PDF)またはZ85(ZeroMQ)形式でBase85をエンコード・デコードします。バイナリデータではBase64よりコンパクトです。
Base32エンコーダー・デコーダー
RFC 4648アルファベットでBase32文字列をエンコード・デコードします。TOTPシークレット、大文字小文字を区別しないトークン、人が入力する識別子に便利です。
bcrypt Hashジェネレーター
bcrypt hashの生成、または平文パスワードと既存bcrypt hashの照合を行います。生成とverifyを1つのツールで並べて使えます。