Skip to content

An Object Linking and Embedding (.doc)

.doc file signature | application/msword

An Object Linking and Embedding (OLE) Compound File (CF) (i.e.,OLECF)file format, known asCompound Binary File formatby Microsoft, used byMicrosoft Office 97-2003 applications (Word, Powerpoint, Excel, Wizard). Part ofMicrosoft'sStructured Storage (MSS)architecture for Component Object Model (COM)-basedoperating systems.[See also Excel, Outlook, PowerPoint, and Word "subheaders" at byte offset 512 (0x200).]There appear to several subheader formats and a dearth of documentation.There have been re

Safe

Magic Bytes

Offset 0
D0 CF 11 E0 A1 B1 1A E1

Sources: Apache Tika, Wikipedia, Gary Kessler

All Known Signatures

17 signature variants are documented for .doc files across multiple sources.

Hex Signature Offset Sources
D0 CF 11 E0 A1 B1 1A E1 0 Apache Tika, Wikipedia, Gary Kessler
0D 44 4F 43 0 Wikipedia, Gary Kessler
4D 69 63 72 6F 73 6F 66 74 20 57 6F 72 64 20 36 2E 30 20 44 6F 63 75 6D 65 6E 74 2080 Apache Tika
44 6F 63 75 6D 65 6E 74 6F 20 4D 69 63 72 6F 73 6F 66 74 20 57 6F 72 64 20 36 2080 Apache Tika
4D 53 57 6F 72 64 44 6F 63 2112 Apache Tika
31 BE 00 00 0 Apache Tika
50 4F 5E 51 60 0 Apache Tika
FE 37 00 23 0 Apache Tika
DB A5 2D 00 00 00 0 Apache Tika
94 A6 2E 0 Apache Tika
CE FA ED FE 0 Gary Kessler
CF 11 E0 A1 B1 1A E1 00 0 Gary Kessler
CF FA ED FE 0 Gary Kessler
DB A5 2D 00 0 Gary Kessler
EB 52 90 2D 46 56 45 2D 46 53 2D 0 Gary Kessler
EB 58 90 2D 46 56 45 2D 46 53 2D 0 Gary Kessler
51 20 BE FF EE A5 C1 00 0 Gary Kessler

Extension

.doc

MIME Type

application/msword

Byte Offset

0

Risk Level

Safe

Validation Code

How to validate .doc files in Python

Python
def is_doc(file_path: str) -> bool:
    """Check if file is a valid DOC by magic bytes."""
    signature = bytes([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])
    with open(file_path, "rb") as f:
        return f.read(8) == signature

How to validate .doc files in Node.js

Node.js
function isDOC(buffer: Buffer): boolean {
  const signature = Buffer.from([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1]);
  return buffer.subarray(0, 8).equals(signature);
}

How to validate .doc files in Go

Go
func IsDOC(data []byte) bool {
    signature := []byte{0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1}
    if len(data) < 8 {
        return false
    }
    return bytes.Equal(data[:8], signature)
}

API Endpoint

GET /api/v1/doc
curl https://filesignature.org/api/v1/doc

See the full API documentation for all endpoints and parameters.

Frequently Asked Questions

What is a .doc file?

A .doc file is a An Object Linking and Embedding file. An Object Linking and Embedding (OLE) Compound File (CF) (i.e.,OLECF)file format, known asCompound Binary File formatby Microsoft, used byMicrosoft Office 97-2003 applications (Word, Powerpoint, Excel, Wizard). Part ofMicrosoft'sStructured Storage (MSS)architecture for Component Object Model (COM)-basedoperating systems.[See also Excel, Outlook, PowerPoint, and Word "subheaders" at byte offset 512 (0x200).]There appear to several subheader formats and a dearth of documentation.There have been re

What are the magic bytes for .doc files?

The magic bytes for An Object Linking and Embedding files are D0 CF 11 E0 A1 B1 1A E1 at byte offset 0. These bytes uniquely identify the file format regardless of the file extension.

How do I validate a .doc file?

To validate a .doc file, read the first bytes of the file and compare them against the known magic bytes (D0 CF 11 E0 A1 B1 1A E1) at offset 0. This is more reliable than checking the file extension alone, as extensions can be renamed.

What is the MIME type for .doc files?

The primary MIME type for .doc files is application/msword.

Is it safe to open .doc files?

An Object Linking and Embedding (.doc) files are generally safe to open. They are classified as low risk because they primarily contain data rather than executable code. However, always ensure files come from a trusted source.