← 返回工具箱

文件类型识别

FILE SIGNATURE · 文件工具

读取文件头 magic number 识别真实格式(PNG/JPEG/PDF/ZIP/WEBP/MP4 等 20+ 签名),与扩展名比对揪出改后缀的伪装文件。

把文件拖到这里,或点击选择文件 只读文件头 32 字节 · 全程本机,不上传任何字节
识别结果
文件头 hex dump(前 32 字节)
扩展名可以随便改,文件头不会说谎:ZIP 容器族(docx/xlsx/apk/jar)、RIFF 族(wav/avi/webp)与 ISOBMFF 族(mp4/avif)共用开头,工具会读出 brand 字节帮你细分;识别结果为空说明是纯文本或罕见格式。

>_ 使用指南 · GUIDE

扩展名可以随便改,文件开头几个字节(magic number)不会说谎。这个工具只读文件头 32 字节,按 20+ 内置签名识别真实格式,并与扩展名比对——上传校验、溯源「打不开的文件」、揪出改后缀的伪装文件都靠它。识别结果与头部 hex dump 并列展示,连「为什么识别成这个」都能直接看字节核对。

典型步骤:

  1. 拖入文件:任意文件,只读头部 32 字节,全程本机不上传
  2. 看识别结果:命中签名与 MIME 一行列出,RIFF/ISOBMFF 家族会带出 brand 字节辅助细分
  3. 核对扩展名:声称的后缀与真实格式不符时明确提示「疑似改后缀伪装」
  4. 读 hex dump:偏移、十六进制与 ASCII 三列对齐,拿格式规范逐字节对照

>_ 常见问题 · FAQ

Q1 · 为什么 docx、apk 会被识别成 ZIP?

它们确实是 ZIP 容器:Office 2007+ 文档、Android 安装包、JAR 都是在 ZIP 结构上加了约定目录。工具识别出 ZIP 后给出歧义说明,细分要解包看 [Content_Types].xml(Office)或 AndroidManifest.xml(APK)——这是容器格式的本质,不是识别失败。

Q2 · 文件头具体长什么样?

每个格式开头都有固定字节:PNG 是 89 50 4E 47(.PNG)、JPEG 是 FF D8 FF、PDF 是 %PDF、ZIP 是 PK..、GIF 是 GIF8。下方 hex dump 区把这些字节按偏移列出,对照维基百科的 magic number 清单即可逐字节验证。

Q3 · 识别结果是空是怎么回事?

命中为零说明文件头不在内置签名表内:纯文本(txt/csv/json/md)、Markdown、源代码以及冷门格式都可能如此。这类文件本身也没有「伪装」问题——文本文件通常直接打开阅读即可确认。

Q4 · 和按扩展名判断比,可靠在哪?

扩展名由发送方随意声明,重命名一个 .exe 为 .jpg 就能绕过白名单校验;magic number 来自文件内容本身,改不了(除非精心伪造)。严格的文件上传校验应三层叠加:扩展名 → MIME 声明 → 文件头探测,本工具就是第三层的本地实现。

Q5 · 会泄露文件内容吗?

不会。工具只读取文件前 32 字节(readAsArrayBuffer 切片),且读取与比对全部发生在浏览器本地,没有任何网络请求。即使是保密文件,也可以放心用它做格式核验。

嵌入代码

把下面的代码复制到你的网页,即可将本工具嵌入为 iframe(自动隐藏导航与页脚)。

高度px
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。