ファイル・ページ

Base64ファイル変換

ローカルで動作

ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。

Base64ファイル変換 を使用してください

機能の説明

ファイルをドロップするか選択するとBase64のdata URIとして取得でき、data URIを貼り付けるとダウンロード可能なファイルにデコードできます。

すべてブラウザ上で動作します。入力した内容は一切アップロードされません。

Base64ファイル変換 の使い方

  1. ファイルを選択またはドロップする. 破線の枠をクリックしてファイルを選ぶか、枠にドラッグします。複数のファイルをドロップした場合、変換されるのは最初の1つだけです。
  2. data URIを読む. 下の欄に、data:type;base64,に続いてエンコードされたファイルが入ります。その下の行には、元のサイズ、Base64のサイズ、増加分が表示されます。
  3. 結果をコピーする. Copyを押すとdata URI全体がクリップボードにコピーされます。テストページや事案メモに貼り付けるときなどに使います。
  4. data URIを貼り付けてデコードする. 逆に、下のボックスにデータURI(例:data:image/png;base64,...)を貼り付けてください。;charset=utf-8 のようなパラメータ、改行、URLセーフなBase64、およびパーセントエンコードされたデータURIが使用可能です。
  5. ファイルをダウンロードして確認する. Decode & Download(デコードしてダウンロード)を押してファイルを保存します。疑わしいメールやページから得たものなら、開く前にFile Type SnifferとFile Hashで確認してください。

例

小さな画像

入力
A small PNG file, dropped onto the box or chosen by clicking it
出力の様子
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==

Original: 70 bytes | Base64: 96 bytes (37% overhead) | Data URI: 118 bytes

下のボックスには「data:image/png;base64,...」というデータが表示され、1行には元のサイズ、オーバーヘッドを含んだBase64のサイズ、およびデータURI全体の長さが示されます。Base64のサイズは、ファイルのサイズの約3分の1ほど大きくなります。

チェック対象

シグナルその意味
data:の後のMIMEタイプブラウザがそのファイルについて報告するタイプで、通常はファイル名の拡張子から決まります。ファイルの実際の中身を証明するものではないため、名前を変えたファイルは誤解を招くタイプのままになります。
元のサイズ小数点以下1桁のKB単位のファイルサイズです。約50バイト未満のファイルは0.0 KBと表示されますが、これは丸めによるもので、空のファイルという意味ではありません。
Base64のサイズと増加分data:type;base64,のプレフィックスを除いたBase64部分の長さと、ファイルよりどれだけ大きいかを示します。大きなファイルでは33パーセント前後に落ち着きますが、とても小さなファイルではパディングのため大きな値になります。
デコードしたファイルの名前ダウンロードファイルの名前は「decoded」に、MIMEタイプに応じた拡張子が付きます。たとえば、text/plainの場合は「decoded.png」や「decoded.txt」、タイプが指定されていない場合は「decoded.bin」といった具合です。ボタンの下にある行には、ファイル名、サイズ、およびファイルの種類が表示されます。
ボタンの下にあるメッセージ読み取れないデータURI、またはA–Z、a–z、0–9、+、/以外の文字を含むBase64の場合、ダウンロードの代わりにボタンの下にメッセージが表示されます。
ローカルにとどまるデータエンコードにはブラウザのFileReaderを使い、デコードではメモリ上でファイルを組み立てるため、このツールがファイルや貼り付けたテキストをどこかへ送ることはありません。

その他の例

RFC 4648のテスト用テキスト

入力
A text file foobar.txt that contains only the six letters foobar, with no line break
結果

data:text/plain;base64,Zm9vYmFyと、Original: 0.0 KB | Base64: 0.0 KB (33% overhead)という行が表示されます。Zm9vYmFyは、foobarに対するRFC 4648の公開テストベクターです。

短いテキストをデコードする

入力
data:text/plain;base64,Zm9vYg==
結果

「Decode & Download」を実行すると、テキスト「foob」を含む「decoded.txt」という名前の4バイトのファイルが保存されます。また、ボタンの下にある行には、ファイル名、サイズ、および「text/plain」というファイル種別が表示されています。

見慣れない拡張子になるSVG画像

入力
data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLz4=
結果

ブラウザは、decoded.svg+xmlという名前の、41バイトの空のSVG画像を保存します。中身を見たい場合は拡張子を.svgに変更してください。

よくある質問

何が出力されますか?

ブラウザがファイルに対して報告するMIMEタイプ(報告がない場合はapplication/octet-stream)を使用した、data:type;base64,data という形式のデータURI。Base64エンコーディングによりデータ量は約3分の1増えますが、これは暗号化ではなく、誰でも復号できるエンコーディングです。

『Decode & Download』はどのデータURIを読み取ることができますか?

data:image/png;base64;... や data:text/plain;charset=utf-8;base64;... といった Base64 データ URI、改行や URL セーフ文字を含むもの、および ;base64; を含まないパーセントエンコードされたもの それ以外の場合は、ボタンの下にメッセージが表示されます。フィッシングメールの添付ファイルから復号されたファイルは有害な場合があるため、開く前に「File Type Sniffer」で確認してください。

ファイルはアップロードされますか?

いいえ。ファイルはFileReader APIを使用して読み込まれ、データURIはこのページ上で生成されます。何もアップロードされることはありません。50 MBまでのファイルが変換されます。これより大きなデータURIの場合、タブがフリーズする可能性があるためです。

フィッシングメールやページに長いdata:...の文字列が含まれているのはなぜですか?

HTML添付ファイルやフィッシングページは、ロゴ、フォント、スクリプト、ファイル全体をBase64のdata URIとして埋め込むことがよくあります。そうすると、内容は別のアドレスから読み込まれるのではなく、ページの中に入った状態で運ばれます。ここで文字列をデコードすれば、元のページを開かずに中に何が隠されているかを確認できます。

data:プレフィックスのない単なるBase64もデコードできますか?

はい、追加すれば可能です。文字列の先頭に「data:application/octet-stream;base64」と入力し、「デコード&ダウンロード」をクリックすると、「decoded.bin」という名前のファイルが得られます。短いテキストの場合は、Base64エンコーダー/デコーダーの方が処理が速いです。

小さなファイルで増加分が33パーセントを超えるのはなぜですか?

Base64は3バイトごとに4文字に変換し、最後のグループを=記号でパディングします。数バイトのファイルではこのパディングの割合が大きくなるため、1バイトのファイルでは300パーセントと表示されます。数キロバイト以上になると、値は33パーセント近くで安定します。

疑わしいメッセージからデコードしたSVGやHTMLのファイルを開いても安全ですか?

普段使っているブラウザでは安全ではありません。SVGやHTMLのファイルには、開いたときに実行されるスクリプトやリンクが含まれている可能性があります。まずファイルの種類とハッシュを確認し、そのようなファイルはサンドボックスや別の解析用マシンでのみ開いてください。

用語解説

PhishDestroyの調査