.PKL file signature
A Python pickle file begins with the bytes 80 04 at the start of the file. The signature is the same whatever the file is named, which is why a renamed or extensionless PICKLE file is still recognisable.
Known signatures
| Offset | Hex | ASCII |
|---|---|---|
| 0 | 80 04Protocol 4, the default since Python 3.8. | |
| 0 | 80 05Protocol 5. |
MIME type: application/octet-stream · usual extensions: .pkl, .pickle
How to check a file's signature
Without installing anything: drop the file on our detector. It reads the bytes in your browser and shows the hex dump alongside the verdict; nothing is uploaded.
macOS and Linux (Terminal):
xxd -l 32 file.pkl
file file.pklWindows (PowerShell):
Format-Hex -Path file.pkl -Count 32If the bytes do not match
A file named .pkl whose first bytes are something else is not a PICKLE file. The common explanations are a wrong or deliberately misleading extension, a download that saved an HTML error page instead of the file, or a container such as ZIP wrapping the real content. The detector reports what the bytes say; the PICKLE guide explains what a genuine file should contain.