File Signature Checker

See what a file really is from its first bytes — and whether its name is lying.

The first 512 bytes are read in your browser and never uploaded. You get the real format, its MIME type and the header bytes — plus a warning when the extension disagrees with the content.

When you need this

  • A file will not open and you suspect the extension is wrong — someone renamed a PNG to .jpg, or a ZIP to .docx.
  • You are about to trust a file because of its name, and want one cheap check before you do.
  • A download arrived with no extension at all, and you need to know what it is before choosing an app to open it.
  • A pipeline rejects an upload as "not a valid image" and you need to see whether the bytes or the parser is at fault.

Why other file-type checkers fall short

Most tools read the filename and report the extension back to you. That is the one piece of information you already had, and it is exactly the thing under suspicion.

Online checkers ask you to upload the file. For a document you have not opened yet, that is the worst possible moment to send it to a third party.

Tools that list a hundred formats but never say "these two disagree" leave you to compare two columns yourself — and the comparison is the only part that matters.

Some report the MIME type the operating system guessed, which is derived from the extension again. A guess dressed as a measurement.

File signature reference

Every row is a rule the checker applies: a fixed byte sequence at a fixed offset. Where a row lists two groups of bytes, both must match — RIFF alone does not make a file a WebP, and the brand at offset 8 is what separates MP4 from QuickTime.

FormatExtensionsOffsetMagic bytes (hex)MIME type
PNGpng089 50 4E 47 0D 0A 1A 0Aimage/png
JPEGjpg, jpeg, jpe, jfif0FF D8 FFimage/jpeg
GIFgif047 49 46 38image/gif
WebPwebp0, 852 49 46 46 · 57 45 42 50image/webp
BMPbmp, dib042 4Dimage/bmp
TIFF (little-endian)tif, tiff049 49 2A 00image/tiff
TIFF (big-endian)tif, tiff04D 4D 00 2Aimage/tiff
ICO / CURico, cur000 00 01 00image/x-icon
AVIFavif4, 866 74 79 70 · 61 76 69 66image/avif
HEIC / HEIFheic, heif4, 866 74 79 70 · 68 65 69 63image/heic
PDFpdf025 50 44 46application/pdf
GZIPgz, tgz01F 8Bapplication/gzip
RARrar052 61 72 21 1A 07application/vnd.rar
7-Zip7z037 7A BC AF 27 1Capplication/x-7z-compressed
ZIPzip050 4B 03 04application/zip
ZIP (empty archive)zip050 4B 05 06application/zip
ZIP (spanned)zip050 4B 07 08application/zip
SQLite 3sqlite, db, db3053 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00application/vnd.sqlite3
TARtar25775 73 74 61 72application/x-tar
WAVwav0, 852 49 46 46 · 57 41 56 45audio/wav
AVIavi0, 852 49 46 46 · 41 56 49 20video/x-msvideo
Oggogg, oga, opus04F 67 67 53audio/ogg
FLACflac066 4C 61 43audio/flac
MP3 (ID3 tag)mp3049 44 33audio/mpeg
MP3 (frame sync)mp30FF FBaudio/mpeg
QuickTime MOVmov4, 866 74 79 70 · 71 74 20 20video/quicktime
MP4mp4, m4v, m4a466 74 79 70video/mp4
WebAssemblywasm000 61 73 6Dapplication/wasm
ELFelf, so, o07F 45 4C 46application/x-elf
PE (Windows EXE/DLL)exe, dll, sys04D 5Aapplication/vnd.microsoft.portable-executable
Java classclass0CA FE BA BEapplication/java-vm

Frequently asked questions

What is a file signature?

A file signature (also called a magic number) is a short fixed byte sequence at the start of a file that identifies its format. PNG files begin with 89 50 4E 47, PDFs begin with the characters %PDF, and ZIP archives begin with PK. Software that opens files reads these bytes; the extension is a hint for humans.

Why does a renamed file still fail to open?

Because the application decides from the bytes, not the name. Renaming photo.png to photo.jpg changes the label in the file listing and nothing else — the first bytes still say PNG. Some applications try to recover by sniffing the content, which is why a renamed file sometimes opens anyway and sometimes shows a broken image.

Is my file uploaded?

No. The page reads the first 512 bytes with the browser's own file API and does the comparison in JavaScript. There is no upload step and no server to receive one. You can open the network panel before dropping the file and watch: no request is made.

Why does a DOCX show up as ZIP?

Because it is one. Modern Office documents, APK packages and JAR files are all ZIP containers with a specific internal layout. Telling them apart means reading the archive index, which this tool does not do — so it reports the container honestly rather than guessing which kind of ZIP it is.

Why can a text file have no signature?

Because plain text has no header. TXT, JSON, CSV, and most source files begin directly with their content, so there is no magic number to match. This tool says so explicitly instead of guessing a format from the extension.

Other tools

Guides