# Folder Hash

> Hash a folder to SHA256SUMS in your browser, or drop a checksum file to verify matched, mismatched, missing and extra. Streaming SHA-256, nothing uploaded.

- URL: https://bytescope.dev/en/folder-hash/
- Locale: en · Also: [ja](https://bytescope.dev/ja/folder-hash.md) · [zh-Hant](https://bytescope.dev/zh-Hant/folder-hash.md)
- Runs: The folder is opened by the browser on your own machine. Files are hashed here and never sent anywhere — no upload, no account, no copy on a server.
- Requires: Full mode needs Chrome, Edge or Opera on desktop (File System Access API) to read a folder and write results next to it. Firefox and Safari get a reduced mode: pick the folder through a file input and download the results.
- Updated: 2026-09-08

## What it does

Point this at a folder and every file inside is hashed with streaming `SHA-256` — the same digest `sha256sum` writes. The bytes are read in chunks in a worker, so a 4 GB disk image never sits in memory, and nothing is uploaded. When it finishes you download a `SHA256SUMS` file you can check later with this page or with `sha256sum -c`.

### Write a checksum file

Pick a folder, hash it, download `SHA256SUMS`. Paths are relative to the folder you picked, `/` separated, with GNU two-space lines (and a leading `\` plus escapes when a name contains a backslash or a newline). Put that file next to a backup, or keep it with a release, and you have a record of what the tree looked like.

### Verify a checksum file

Drop an existing checksum file — GNU `sha256sum` output or BSD `sha256sum --tag` — then pick the folder it describes. The page hashes what is on disk and reconciles it against the file: matched, mismatched, missing, extra, each in its own list with a count. Lines that would not parse are shown too, with the line number, the problem, and the original text, so a bad digest is not silently skipped.

### What this is not

This is exact `SHA-256` of whole files, not a duplicate finder and not a fuzzy copy detector. Two exports of the same photo at different sizes will not match, and a renamed file is an extra path plus a missing one. For a single file and other algorithms, use File Hash. For byte-identical copies you want to delete, use Duplicate File Finder.

## Limits

Does not compare two folders (use folder-compare); it hashes every file in one folder and writes or verifies a checksum file.

## FAQ

### Are my files uploaded to hash them?

No. The directory walk and the `SHA-256` hashing run in your browser. Hashing streams each file in chunks through a local worker, and the bytes go nowhere. The page is a static file with no server behind it, so there is no upload path even in principle.

### What format is the downloaded checksum file?

GNU `sha256sum` text mode: one `<digest>  <path>` line per file (two spaces), with a trailing newline on every line including the last. Names that contain `\`, a newline or a carriage return are escaped the way `sha256sum` does, with a leading `\` on that line. The file is named `SHA256SUMS`. BSD tagged lines are accepted on the way in; this page does not write them.

### What do matched, mismatched, missing and extra mean?

Matched: the path is in the checksum file and the digest on disk is the same. Mismatched: the path is in both, but the digest differs — the file changed. Missing: the checksum file names a path that is not in the folder. Extra: the folder has a file the checksum file does not name. Unreadable: the path is in the folder but the bytes could not be hashed, so it is not called missing. Parse issues (bad digest, empty path, `..`, duplicates) are listed separately and do not count as those five.

### Which browsers does it work in?

Chromium desktop browsers (Chrome, Edge, Brave) can pick a folder with the File System Access API and remember it for next time. Firefox and Safari can still hash a folder through the file input (`webkitdirectory`) and download `SHA256SUMS`; they just cannot remember the folder. The support table on the page reports what this browser actually has.

### How large a folder can it hash?

Each file is streamed, so a single multi-gigabyte file is fine. The walk stops past 200,000 files so a home directory picked by mistake cannot freeze the tab. If a scan is too large, pick a subfolder. Stop is always available; a partial `SHA256SUMS` lists only the files that finished.

## Related tools

- [Folder Size](https://bytescope.dev/en/folder-size.md) — Pick a folder and see where the bytes went: a treemap, the largest files, and an extension breakdown.
- [Folder Compare](https://bytescope.dev/en/folder-compare.md) — Compare two folders by size, then SHA-256, and list only-in-A, only-in-B, and diffs.
- [File Hash](https://bytescope.dev/en/file-hash.md) — Hash one file with MD5, SHA-1, SHA-256, CRC32 and more, and compare a digest.
- [Duplicate File Finder](https://bytescope.dev/en/duplicate-finder.md) — Find exact duplicate files in a folder by size, then SHA-256.
- [Extract Archive](https://bytescope.dev/en/extract-archive.md) — Unpack zip, 7z, rar and tar archives without uploading them.
