Hex Viewer
Read any file byte by byte and find out what it really is from its signature.
The First Few Bytes Do Not Lie
A file extension is a suggestion. The bytes at the start of a file are what every program actually uses to decide what it is holding: 89 50 4E 47 means PNG, 25 50 44 46 means PDF, 50 4B 03 04 means a ZIP archive and therefore possibly a .docx, an .epub or a .jar. These signatures are why an image renamed to .pdf still opens as an image in most viewers.
This viewer reads the file in your browser, shows it as a conventional hex dump with the printable characters alongside, and tells you what the signature says. When the signature and the extension disagree it says so — which is usually either the whole explanation for a file that will not open, or the first sign that something is not what it claims.
Key features
- Thirty signatures recognised — images, archives, documents, executables, fonts, media containers and databases.
- Classic dump layout — offset, hex, and the printable characters, at 8, 16, 24 or 32 bytes a row.
- Jump to any offset — useful when a header you need sits well into the file.
- Says when the name and bytes disagree — with the cases that are normal, like a .docx that is really a ZIP, left alone.
- Nothing is uploaded — which is the point, given what people inspect.
This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.
How to use: Hex Viewer
- Open any file
Any type, any size your device can hold in memory. - Read the summary
Size, what the signature says it is, and whether it looks like text. - Scroll or jump
Change the offset to look at a particular part of the file. - Save the dump if you need it
Exported as a text file for a bug report or a note.
Technical specifications
| Processing location | Entirely in your browser — no server round trip |
|---|---|
| Data uploaded | None. Files and text never leave your device |
| Price | Free — no account, no trial, no usage cap |
| Category | Developer |
| Works offline | Yes, once the page has loaded |
| Browser support | Chrome 90+, Edge 90+, Firefox 90+, Safari 15+ |
| Interface languages | English, 中文, हिन्दी, Español, العربية |
Frequently asked questions
What is a magic number?
A short, fixed sequence of bytes at the very start of a file that identifies its format. PNG uses eight bytes chosen partly to detect corruption in transfer; PDF uses the four characters %PDF. The Unix file command is essentially a very large table of them, and so is this tool on a smaller scale.
My .docx says it is a ZIP archive. Is it broken?
No — that is correct. Every modern Office document, and an .epub and a .jar, is a ZIP archive containing XML. The tool knows this case and does not flag it as a mismatch. Renaming one to .zip and opening it is a genuinely useful way to look inside.
What does "looks like text" mean?
It means the first few kilobytes contain no null bytes and are overwhelmingly printable characters, tabs and newlines — which is how most programs decide a file is text. A file with no recognised signature that looks like text is usually JSON, CSV, a config file or source code.
Can I edit the bytes?
No, this only reads. A byte editor that can silently corrupt a file is a different kind of tool and wants undo, verification and a great deal of care. For inspection, reading is the whole job.
Why would I check an upload's bytes?
Because the type a client declares can say anything. A server that accepts "image/png" because the request said so will happily store a file that is not an image. Reading the first bytes and checking them against your allowlist is the check that cannot be talked out of.