47

GIF file signature

Magic number at the start of the file · GIF8

47 49 46 38

A GIF opens with the ASCII text GIF8 and then the version, either 37 61 (GIF87a) or 39 61 (GIF89a). GIF89a added transparency and animation, so a file starting GIF89a can be animated.

Hex signature
47 49 46 38
Offset
0 (start of file)
ASCII
GIF8
Length
4 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 47 49 46 38 (the text GIF8), it is a GIF file.

Signature variants

GIF appears with more than one byte pattern. These all identify the same family:

Hex signatureOffsetNote
47 49 46 38 37 610GIF87a
47 49 46 38 39 610GIF89a

Formats that use the 47 49 46 38 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.gif
  • hexdump -C -n 16 example.gif
  • file example.gif

Windows (PowerShell)

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

Python

  • open("example.gif","rb").read(4).hex()

In your browser

Frequently asked questions

What is the GIF file signature?

GIF files start with the hex bytes 47 49 46 38 (GIF8 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.gif on Linux or macOS, or Format-Hex -Path example.gif -Count 16 in Windows PowerShell, and read the first bytes.

Can a file fake the GIF signature?

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

Related signatures

Sources