文件签名检测器 — 通过 Magic Bytes 识别未知文件
通过 magic bytes 识别未知文件,覆盖 46+ 种格式 —— 图像、压缩包、文档、字体、音视频、可执行文件。100% 隐私安全,文件全程不离本机。
Drop any file here
Identify file type by magic bytes. 46+ formats supported.
每种文件格式都有一个签名 —— 一段位于已知偏移处的短字节序列,与文件名无关地标识该格式。JPEG 以 FF D8 FF 开头,PNG 以 \u0089 PNG 开头,PDF 以 %PDF 开头,ZIP 以 PK 开头。这些 magic bytes 是文件识别的基本单元 —— Unix file 命令读取它们,取证工具检查它们,操作系统在扩展名缺失或错误时也靠它们判断。文件签名检测器会读取你拖入文件的这些字节,在覆盖图像、压缩包、文档、音视频、字体、可执行格式的 46+ 签名库里进行匹配。
这个工具专门用来应对这样的时刻:你拿到一个没有扩展名的文件、一个扩展名有误导性的文件,或者从不太信任的来源下载下来的文件。前 4 字节能告诉你的信息比文件名多得多。一个 .jpg 文件如果以 %PDF 开头,本质是扩展名错了的 PDF;一个 video.mp4 如果以 PK 开头,本质是 ZIP 压缩包(也可能是 DOCX 或 EPUB)。签名能瞬间消歧这些情况。
隐私模型:FileReader API 只读取签名匹配所需的字节 —— 通常是前 4 到 16 字节,对于非零偏移位置的签名(比如 TAR 的签名在第 257 字节处),偶尔会读到 512 字节。文件其余部分不会被读取,也不会被缓存到内存。页面加载完成后不再发起任何 HTTP 请求。文件全程留在你的设备上,任何服务器都不会看到它的内容。
使用方法
拖入你的文件
把任意文件拖放到上传区。工具只读取最前面的几个字节 —— 也就是 'magic bytes' 或 'file signature' —— 然后在 46+ 种已知格式的数据库里进行匹配。签名之后的内容不会被读取。
查看识别结果
输出会显示文件大小、前 4 字节的十六进制值,以及检测到的文件类型。如果命中多个签名(某个格式复用其他格式 magic bytes 时会发生),所有匹配项都会列出 —— 结合上下文判断正确的那个。
复制或下载
把签名报告复制为文本,或者下载下来。报告是紧凑、可读的摘要,适合粘贴到工单、邮件或文档备注里。
常见问题
支持识别哪些格式?
46+ 种格式分为七大类。图像:JPEG、PNG、GIF、WebP、BMP、TIFF、PSD、JPEG 2000、JPEG XL。压缩包:ZIP、RAR v4/v5、7z、GZip、BZip2、XZ、TAR(POSIX 与 GNU)、DEB、RPM。文档:PDF、XML、OLE/DOC。音频:MP3(ID3 与 MPEG)、WAV、OGG、FLAC。视频:MP4、MKV/WebM、MPEG。字体:TTF、OTF、WOFF、WOFF2。二进制:Windows EXE/DLL、Linux ELF、macOS Mach-O、WebAssembly。其他:Shell 脚本、SSL 证书、vCard。
如果文件类型无法识别怎么办?
如果数据库中没有任何签名匹配,工具会以十六进制显示前 16 字节。你可以手动去文件签名参考表(如 Gary Kessler 的 File Signatures Table)查询这些字节,或者结合文件名、来源、预期内容等线索来判断格式。
我的文件会被上传吗?
不会。工具通过 FileReader API 只读取文件最前面的几百字节。其余内容不会被读取、不会被缓存、不会被传输。文件全程留在你自己的设备上。
签名匹配就说明文件一定有效吗?
不能。签名匹配只能说明文件头正确,无法保证整个文件结构完好。一个 PNG 文件可能头部的 `PNG` 签名正确,但数据段已损坏 —— 签名检测器发现不了这种问题。要校验内容,请在合适的应用里打开文件。
这与 MIME 类型查询有什么区别?
MIME 类型查询工具是用一张静态表,把文件扩展名映射到 MIME 类型。文件签名检测器则读取文件的真实字节来识别格式,不看扩展名。一个叫 `report.pdf` 的文件如果开头是 `PNG`,它实际上是 PNG 图片,签名检测器能正确识别。
限制说明
- 只校验签名 —— 不验证内容检测器只确认 magic bytes 与已知格式匹配。它不验证整个文件结构、不检查损坏,也不保证文件能被某个应用成功打开。
- 不解构容器ZIP 这类容器格式内部装着其他格式。`.docx` 文件其实是一个装着 XML 的 ZIP —— 检测器会把它识别为 ZIP,而不是具体识别为 DOCX。EPUB、JAR、APK、IPA 同理,它们在最外层共享同一个 ZIP 签名。
- 对文本文件没有启发式判断纯文本文件(`.txt`、`.csv`、`.json`、`.md`、`.html`)没有 magic bytes —— 它们靠内容而非固定头部来识别。检测器会把这些文件报告为未知。
平台说明
- macOS
- Unix 的 `file` 命令(`file unknown.bin`)使用系统的 magic 文件数据库提供相同信息。浏览器工具适合没开终端、或更习惯可视化界面的场景。
- Windows
- Windows 主要靠扩展名识别文件,不看内容。扩展名错误的文件会被资源管理器误判。改名之前先用本工具检测真实格式。
- Linux
- `file` 和 `xxd` 是标准的 CLI 工具。`xxd -l 16 file.bin` 以十六进制显示前 16 字节,可以拿去对照 magic byte 参考表。浏览器工具把两者合在一个界面里。
- Web
- 完全在浏览器中运行。文件数据由 FileReader API 在本地读取 —— 只访问最前面的几个字节,不向任何服务器传输。