FIT
application/fits
Magic Bytes
Offset: 0
53 49 4D 50 4C 45 20 20 3D 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54
The Flexible Image Transport System (FITS) is an open standard file format maintained by the International Astronomical Union for digital file storage. It is the standard format used within the astronomical community to transport, analyze, and archive scientific data, including multidimensional arrays and tables. Originally developed in the late 1970s, FITS remains backwards compatible and is considered safe as it typically contains structured data rather than executable code.
Validation Code
How to validate .fit files in Python
Python
def is_fit(file_path: str) -> bool:
"""Check if file is a valid FIT by magic bytes."""
signature = bytes([0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54])
with open(file_path, "rb") as f:
return f.read(30) == signature
How to validate .fit files in Node.js
Node.js
function isFIT(buffer: Buffer): boolean {
const signature = Buffer.from([0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54]);
return buffer.subarray(0, 30).equals(signature);
}
Go
func IsFIT(data []byte) bool {
signature := []byte{0x53, 0x49, 0x4D, 0x50, 0x4C, 0x45, 0x20, 0x20, 0x3D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x54}
if len(data) < 30 {
return false
}
return bytes.Equal(data[:30], signature)
}
API Endpoint
GET
/api/v1/fit
curl https://filesignature.org/api/v1/fit