文件类型检测器
通过检查文件的魔数字节签名来检测其真实格式——而不是扩展名或浏览器报告的 MIME 类型。将实际字节与 PNG、JPEG、GIF、PDF、ZIP/DOCX/XLSX/PPTX、GZIP、BMP、WEBP、WAV、ELF、MP3、7-Zip 和 RAR 的公开签名进行比对,从而发现标签错误或被重命名的文件(例如实际是 PNG 的 .zip,或实际是 PDF 的 .txt)。
输入
文件在您的浏览器中本地读取,绝不会上传。仅检查其前几千字节。
输出
| 属性 | 值 |
|---|---|
| No data yet | |
使用此工具的更多方式
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/file-type-checker/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="文件类型检测器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
也可通过
使用指南
文件的扩展名以及浏览器“报告”的 MIME 类型都只是标签——任何人(或任何程序)都可以把 photo.exe 改名为 photo.jpg,而大多数软件会直接相信这个名字。文件类型检测器不会。它读取文件的实际开头字节,并将其与每种主流格式在文件开头(或附近)写入的已公开魔数签名进行比对,然后报告文件的真实类型;如果结果与浏览器分配的标签不一致,则标记为不匹配。
使用方法
将文件拖入上传区域。检测会立即运行,完全在您的浏览器中完成——文件在本地读取,绝不会上传到任何地方。结果表格显示:
- Detected File Type 和 Detected MIME Type — 字节签名实际指示的类型。
- Confidence — 该信号的强度(见下文)。
- Typical Extension(s) — 检测到的格式通常使用的扩展名。
- Signature Bytes Matched 和 Detection Basis — 所检查的确切十六进制字节,以及匹配它们所依据的规则,方便您自行验证判断,而不必盲目相信结果。
- First Bytes Inspected (hex) — 文件开头的原始十六进制转储,无论是否匹配到任何内容都会显示。
- Browser-Reported MIME (from upload) — 浏览器为该文件猜测的 MIME 类型(通常源自其扩展名)。
- Mismatch Warning — 标记浏览器的猜测与字节级检测结果之间的不一致,这正是本工具的核心用途:识别被重命名或标签错误的文件。
检测原理
每种格式在文件开头附近都有一段固定的字节模式——即“魔数”,由其自身规范定义。检测器按以下顺序查找:PNG(89 50 4E 47 0D 0A 1A 0A)、JPEG(FF D8 FF)、GIF87a/GIF89a、PDF(%PDF-)、GZIP(1F 8B)、ZIP(50 4B 03 04,包括空归档和分卷归档变体)、BMP(BM)、WebP 和 WAV(两者都是 RIFF 容器,通过字节偏移 8 处的表单类型标签区分)、ELF 二进制文件、MP3(ID3v2 标签,或作为较弱后备的裸 MPEG 帧同步模式)、7-Zip,以及 RAR(旧版与 v5+ 两种头部格式)。
基于 ZIP 的 Office 格式(DOCX/XLSX/PPTX)会进行第二轮检查:从字节层面看,它们都是普通的 ZIP 归档,因此仅凭 50 4B 03 04 无法将它们相互区分,也无法将其与普通 .zip、.jar 或 .apk 区分开。检测器会扫描归档前 8 KB,查找 Office 写入的标准内部路径(word/document.xml、xl/workbook.xml、ppt/presentation.xml),在可能的情况下将通用的“ZIP 归档”结果升级为具体的 Office 格式。如果没有找到这些路径,但找到了 [Content_Types].xml(OOXML 清单文件),则报告“可能为 Office Open XML,具体格式无法确定”,而不会去猜测;两者都没有的普通 ZIP 则报告为通用 ZIP 归档。
置信度并不统一。 像 PNG 的 8 字节或 7-Zip 的 6 字节这样长且唯一的签名,置信度约为 99%——几乎不可能是巧合匹配。较短的签名(BMP 的 2 字节 BM)得分较低,因为 2 个字节在无关的二进制数据中确有偶然出现的可能。裸 MP3 帧同步检查(仅 11 位)是这组签名中最弱的信号。如果没有任何已知签名匹配,检测器会回退到文本启发式:如果前 1000 字节中超过 90% 为可打印字符,则以低至中等置信度报告“Plain text”;否则如实报告“Unknown”。
为什么我没有改名的文件也显示“MISMATCH”?
有些工具和操作系统仅根据文件扩展名分配 MIME 类型,从不检查内容。因此,损坏的下载文件、被其他程序以错误扩展名保存的文件,或确实标签错误的文件,都会触发该警告。这意味着字节内容与标签不符,并不一定表示有人故意改过名。
我的文件会被上传到什么地方吗?
不会。该工具完全在您的浏览器中以客户端方式运行(它没有 API/编程访问接口)——文件在本地读取和检查,其内容绝不会离开您的设备。
为什么它无法识别我的文件格式?
只检查上面列出的格式。其他文件会落入纯文本启发式判断,或被报告为未知——魔数检测只涵盖具有公开且稳定字节签名的格式,本工具坚持使用经过验证的子集,而不会去猜测没有文档说明的格式。