Test files › Size ladder › 0b.bin

0 byte test file

Empty file, exactly 0 bytes.

↓ Download 0b.bin
Filename0b.bin
FormatBinary
Size0 bytes (0 bytes)
MIME typeapplication/octet-stream
SHA-256e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
What this file catchesZero-byte file. The single most under-tested upload case: many validators check the MIME type and extension but never assert size > 0, so an empty file passes and breaks downstream processing.

Handle it in code

Each snippet below was run against this exact file with Python 3.14.4 and Node 24.15.0 when this page was built, and the output shown is what it printed.

Python

Verify the download against the SHA-256 published on this page. file_digest (Python 3.11+) reads in chunks, so a 250 MB file does not need 250 MB of memory.

import hashlib

with open("0b.bin", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

Run against this file, it prints: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Node.js

The same in Node, streaming the file through the hash.

const crypto = require('node:crypto');
const fs = require('node:fs');

const hash = crypto.createHash('sha256');
fs.createReadStream('0b.bin')
  .on('data', (chunk) => hash.update(chunk))
  .on('end', () => console.log(hash.digest('hex')));

Run against this file, it prints: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Related guides and tools

Large test files (1 KB to 2 GB)Large file upload testing1 GB and 2 GB test filesDownload speed test filesRange requests and resumable downloadsCheck a file's real typeVerify its SHA-256

Download & verify

curl -fsSL -o "0b.bin" "https://files.hexaqa.com/size/0b.bin"
curl -fsSL "https://files.hexaqa.com/size/0b.bin" | sha256sum # expect: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

More size ladder test files

100kb.bin100mb.bin10kb.bin10mb.bin1b.bin1kb.bin1mb.bin250mb.bin

← All Size ladder files