FF

JPEG file signature

Magic number at the start of the file · ÿØÿ

FF D8 FF

Every JPEG starts with the Start Of Image marker FF D8 followed by another marker byte FF. The fourth byte varies by encoder: E0 for JFIF, E1 for Exif, EE for Adobe and DB for raw quantisation tables.

Hex signature
FF D8 FF
Offset
0 (start of file)
ASCII
ÿØÿ
Length
3 bytes

What this magic number means

A magic number is a short, fixed run of bytes at a known position that tells a program what a file really is, no matter what the filename says. If a file starts with the bytes FF D8 FF (the text ÿØÿ), it is a JPEG file.

Because the extension is unreliable, the FF D8 FF prefix is what viewers and upload validators actually test. A .jfif file is a JPEG and carries the same bytes.

Formats that use the FF D8 FF signature

These file types in our database carry this signature:

How to check a file's signature

You can read the first bytes of any file yourself. The magic bytes are shown in hex, the same way this page lists them.

Linux & macOS

  • xxd -l 16 example.jpg
  • hexdump -C -n 16 example.jpg
  • file example.jpg

Windows (PowerShell)

  • Format-Hex -Path example.jpg -Count 16

Python

  • open("example.jpg","rb").read(3).hex()

In your browser

Frequently asked questions

What is the JPEG file signature?

JPEG files start with the hex bytes FF D8 FF (ÿØÿ in ASCII). This magic number identifies the format regardless of the file's name or extension.

How do I check a file's magic number?

Open the file in a hex editor, or run a command such as xxd -l 16 example.jpg on Linux or macOS, or Format-Hex -Path example.jpg -Count 16 in Windows PowerShell, and read the first bytes.

Can a file fake the JPEG signature?

Renaming a file does not change its bytes, so the extension can lie but the signature usually cannot. A genuine JPEG file has these exact bytes; a file with the wrong bytes is not really JPEG, whatever its name says.

Related signatures

Sources