ファイルを追加するだけ
選ぶかドロップした瞬間に判別し、新しいファイルはリストに追加されます(置き換えません)。読むのは各ファイルの先頭64KiBと、ZIPらしいときだけ末尾64KiBなので、20GBのディスクイメージも20KBのアイコンと同じ速さです。
- 「サンプルを読み込む」では、通常のPNG、.jpgという名前のPNG、最小の.docx、判別できない.binの4つを追加します。
ファイル・バイナリ・圧縮
ファイルを選ぶかドロップすると、追加した時点で先頭のバイトから形式を判別します。
ここにファイルをドロップするか「ファイルを選択」を押してください。1回につき20個まで、サイズ無制限。
各ファイルの先頭(ZIPは末尾のディレクトリも)をブラウザ内で読むだけで、アップロードはしません。
ファイルを選ぶかドロップすると判別します。
表示の長さが変わるだけで、読み直しはしません。もっと後ろにあるシグネチャ(tar、ISO、PEヘッダー)は別に表示します。
ファイルを選ぶかドロップすると判別します。
レポートはプレーンテキストで、ファイルごとにサイズ・判定・MIME・拡張子の比較・ヘッダーのバイトを出力します。
ファイル形式判別が必要になるのは、名前が当てにならず、中身から形式を調べるしかないときです。拡張子のない添付ファイル、ダブルクリックしても開けないダウンロード、photo.jpgに名前を変えたスクリプトを弾きたいアップロード処理。拡張子は誰かが付けたラベルにすぎませんが、ファイル先頭の数バイト(マジックナンバー、シグネチャ)は作成したプログラムが書き込んだものです。
このファイル形式判別はそのバイトをブラウザ内で読み、形式名とMIMEタイプの候補を示し、拡張子と突き合わせます。判定の根拠が完全一致のシグネチャなのか、ZIP内のファイル名のような構造の確認なのか、テキストからの推測なのかも明記し、一致したバイトをハイライトするので、結論を鵜呑みにせず自分で確かめられます。
判定をバイト単位で確かめられ、拡張子もあわせて確認できます。
ヘッダーを16進数とASCIIで表示し、一致したシグネチャをハイライトします。PNGなら89 50 4E 47、ZIPなら50 4B 03 04。tarのようにオフセット257にustarを置く形式も、オフセット付きで別に示します。
.jpgに名前を変えたPNGは「不一致」になり、.jpgなら本来どの形式かも表示します。一方、中身が正しくZIPコンテナである.docxは誤りではなく「互換」と表示します。
選ぶかドロップした瞬間に判別し、新しいファイルはリストに追加されます(置き換えません)。読むのは各ファイルの先頭64KiBと、ZIPらしいときだけ末尾64KiBなので、20GBのディスクイメージも20KBのアイコンと同じ速さです。
「シグネチャが完全一致」は決まった位置の決まったバイトが一致したこと。「シグネチャ+構造を確認」は内部のフィールドも読んだこと(ZIP内のファイル名、MP4のftypのブランド、RIFFのサブタイプ)。「テキスト・パターンから推測」はJSONやXML、UTF-8テキストのように固定のマジックナンバーがない形式です。
「互換」はエラーではありません。.docx、.jar、.apkはどれもZIPで、.m4aはMP4コンテナです。注意すべきは「不一致」です。「ブラウザのMIME」の行はFile.typeの値で、拡張子から決まるため、検証には使えません。
画像、PDFとOffice文書、圧縮・アーカイブ形式、実行ファイル(ELF、PE、Mach-O、WebAssembly)、音声・動画コンテナ、フォント、データベースやキャプチャファイル、さらにXML、SVG、HTML、PEMのように先頭に目印があるテキスト形式。
ZIPのセントラルディレクトリにあるファイル名だけを読み、DOCX、XLSX、PPTX、ODT、EPUB、JAR、APK、IPAを普通のZIPと区別します。中身は1つも展開しません。
一致・不一致・互換・拡張子なし・比較不可。正しい.docxが誤った.zip扱いになることはなく、拡張子がない場合は推奨の拡張子を示します。
各ファイルの正確なバイト数とKiB・MiB・GiB換算を表示します。判別にかかる時間はファイルの大きさに比例しないため、サイズの上限はありません。
上のツールにドロップしてください。判別には名前を使わず先頭のバイトだけを見るので、拡張子がなくても形式がわかり、「推奨される拡張子」が表示されます。その拡張子で開けるアプリを選べば開けることがほとんどです。
中身のシグネチャと拡張子が違えば「不一致」と表示されます。ただしシグネチャが見るのはファイルの先頭だけなので、正しい画像の後ろにデータを付けたファイルまでは見抜けません。
このツールのシグネチャ表はWHATWGのMIME Sniffing仕様、Gary Kesslerのシグネチャ表、Wikipediaのファイルシグネチャ一覧を参考にしています。判別結果では実際に一致したバイトとオフセットをハイライトするので、一覧の該当行を直接示すのと同じです。
Windows標準にはLinuxのfileコマンドに当たるものがなく、PowerShellでFormat-Hexを使い先頭バイトを見て自分で照合するのが一般的です。ブラウザで開けるこのファイル形式判別なら、インストールなしで同じことができます。
はい。ブラウザはFile.typeを拡張子から決めるので、名前を変えれば値も変わります。このツールでは「ブラウザのMIME」の行に並べて表示するので、中身から判別した形式との違いがすぐわかります。
まずマジックナンバーで形式を確認するのが第一段階で、名前を変えただけのファイルはここで弾けます。ただし完全ではないので、サーバー側では画像ライブラリで実際にデコード・再エンコードすることをおすすめします。
解決しませんでしたか?
まずサンプルで一致・不一致・ZIPのサブタイプ・判別不可の4つの結果を見比べてから、気になるファイルをファイル形式判別にドロップしてください。
すべての処理はブラウザ内で完結します。