使い方
- Base64 文字列または完全な data URI を入力欄に貼り付けます。スペースや改行が含まれていてもかまいません。
- 「判別された種類」とサイズを確認します。画像、PDF、音声、動画、テキストはプレビューで表示されます。
- ファイルを「ダウンロード」します。判別された種類に合ったファイル名と拡張子で保存されます。
ファイル形式を判別するしくみ
Base64 のテキストが運ぶのはバイト列であり、ファイル名は含まれていません。MIME タイプ付きの data URI を貼り付けない限り、文字列の中身が PDF なのか、ZIP アーカイブなのか、音声なのかを示す情報はありません。そこでこのツールはデータをデコードし、先頭の数バイトを調べます。これはファイルシグネチャ(マジックバイト)と呼ばれ、ほとんどの形式がファイルの先頭に置いている値です。このバイト列は固定なので、各形式の Base64 テキストも決まったパターンで始まります。
| 形式 | 先頭のバイト | Base64 の先頭 |
|---|---|---|
%PDF | JVBER | |
| PNG | 89 50 4E 47 | iVBORw0KGgo |
| JPEG | FF D8 FF | /9j/ |
| GIF | GIF8 | R0lGOD |
| ZIP(DOCX、XLSX、JAR も同様) | PK 03 04 | UEsDB |
| MP3(ID3 タグ付き) | ID3 | SUQz |
| WAV、WebP、AVI(RIFF) | RIFF | UklGR |
デコードしたファイルが開けない場合
Base64 のデコードは可逆なので、ファイルが壊れている場合は、ほぼ間違いなく入力が想定していたものと違っています。次の原因を順に確認してください。
- 入力が途中で切れている。ログファイル、ターミナル、スプレッドシートのセル、チャットアプリでは、長い文字列が切り詰められることがよくあります。末尾のテキストが欠けるとファイルが短くなり、ほとんどの形式は開けなくなります。元のサイズがわかっている場合は、デコード後のサイズと比べてください。
- 余分な文字が含まれている。値と一緒にコピーされた引用符、カンマ、フィールド名や、JSON 文字列に含まれる
\/、\nなどのエスケープシーケンスは、Base64 の一部ではありません。値そのものだけをコピーしてください。 - 別のエンコード方式や種類である。16進数、Base32、Base85、カスタムアルファベットは一見よく似ていますが、Base64 としてデコードすると意味のないデータになります。エンコード判別ツールはすべてのデコーダーを試し、どれが当てはまるかを表示します。
- そもそもファイルではない。結果がプレーンテキストと判別された場合、その文字列はテキストを Base64 にしたもので、中身は JSON、トークン、あるいはさらに重ねてエンコードされた Base64 です。Base64 デコーダーで内容を確認し、出力がまた Base64 であれば、もう一度デコードしてください。
Base64 検証ツールは、無効な文字とその位置を一覧表示し、パディングの問題も報告するので、破損した箇所を特定するのに役立ちます。
コードで Base64 をファイルにデコードする
# Python
import base64
with open('output.bin', 'wb') as f:
f.write(base64.b64decode(data))
// Node.js
fs.writeFileSync('output.bin', Buffer.from(data, 'base64'));
# Linux
base64 -d input.txt > output.bin
# macOS
base64 -D -i input.txt -o output.bin
# Windows PowerShell
[IO.File]::WriteAllBytes("C:\files\output.bin", [Convert]::FromBase64String((Get-Content input.txt -Raw)))
よくある質問
どのようなファイル形式を判別できますか?
はっきりしたシグネチャを持つ一般的な形式です。PDF、ZIP・GZIP・7z・RAR のアーカイブ、PNG・JPEG・GIF・WebP などの画像、MP3・WAV・OGG・FLAC・M4A の音声、MP4・WebM の動画、WOFF・WOFF2・TTF・OTF のフォント、WebAssembly などに対応しています。JSON、XML、HTML、プレーンテキストも認識します。シグネチャのない形式は判別できないため、実際の種類がわかっている場合は、ダウンロードしたファイルの名前を変更してください。
Word や Excel のファイルが ZIP と判別されたのはなぜですか?
DOCX、XLSX、PPTX ファイルは、EPUB や JAR と同様に、内部に特定のフォルダー構造を持つ ZIP アーカイブで、通常の ZIP ファイルと同じマジックバイトで始まります。デコードしたバイト列は正しいので、ダウンロードしたファイルの拡張子を .docx や .xlsx など必要なものに変更すれば、通常どおり開けます。
data URI を貼り付けられますか?
data:...;base64, プレフィックスを含む文字列全体を貼り付けても、Base64 の部分だけを貼り付けてもかまいません。どちらの場合も、種類はデコードしたバイト列と照合して確認されます。デコードしたファイルが Base64 テキストより小さいのはなぜですか?
Base64 は 3 バイトごとに 4 文字を使うため、ファイルはテキストの長さの約 4 分の 3 になります。想定していたファイルよりはるかに小さい場合は、入力が途中で切れている可能性があります。
データはどこかに送信されますか?
いいえ。デコード、形式の判別、プレビューはすべてブラウザ内で行われ、ダウンロードするファイルもお使いのデバイス上で作成されます。アップロードされるものは何もありません。