ByteScope

Folder Hash

Walk a folder, write a standard SHA256SUMS file, or drop a checksum file and list matched, mismatched, missing and extra paths — locally.

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.

Mode

Walk the folder, hash every file with streaming SHA-256, and download a standard SHA256SUMS file.

Folder

Pick one folder. Every file inside it is hashed, subfolders included. Large files are streamed in chunks so they never sit in memory.

folder
files
0

Browser support

Renaming and deleting files where they sit needs the File System Access API, which only Chromium browsers ship. Everything below happens on your machine either way — nothing is ever uploaded.

capabilityChromeEdgeFirefoxSafari
Open a folder from diskwindow.showDirectoryPicker — Chrome/Edge 86 and later, desktop onlysupportedsupportednot supportednot supported
Rename a file in placeFileSystemFileHandle.move — Chrome/Edge 111 and latersupportedsupportednot supportednot supported
Delete a file in placeFileSystemDirectoryHandle.removeEntrysupportedsupportednot supportednot supported
Remember the folder for next timethe handle is kept in IndexedDB on this device; permission is asked againsupportedsupportednot supportednot supported

detected in this browser

  • window.showDirectoryPicker
  • FileSystemFileHandle.move
  • indexedDB

On Firefox or Safari, or on any phone or tablet, this page can explain the job but cannot do it. Open it on desktop Chrome or Edge.

About this tool

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.

Frequently asked questions

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.