Releases: Jay-D-S/HashCheck
Release list
HashCheck v1.0.3
v1.0.3 — Fix broken UI in release builds
Several core features — the Dashboard, Validate, Settings, and Media Group pages — were non-functional in the distributed build despite working correctly during development. This was caused by a bug in Microsoft's WinRT/CsWinRT interop layer: when publishing a self-contained .exe, the IL trimmer strips COM vtable entries that WinUI 3's compiled data binding ({x:Bind}) silently depends on at runtime. The generated binding initialisation code throws a NullReferenceException internally, and because it's caught by the framework rather than propagated, the entire page's bindings never fire — leaving lists empty, status messages invisible, and buttons permanently disabled with no visible error.
Fixed in this release:
- Dashboard now correctly loads and displays hash sets
- Validate page shows progress rows and no longer freezes the UI during directory scanning
- Settings page loads correctly and saves/restores all values
- Media Group and Repair pages now populate their volume lists
- Browse button in Settings correctly shows the selected folder path
No .hash files are affected — this was purely a UI rendering issue in the packaged build.
HashCheck v1.0.2
App wasn't informing user when reading directory structure, so it looked like it was frozen. Better communication with the user to say it's busy reading directories and files before hashing.
HashCheck v1.0.1
Fixed bug where the TreeView isn't showing drive names/directories.
HashCheck v1.0.0
HashCheck v1.0.0 — Bit-Rot Detection for Archived Media
Silent data corruption (bit-rot) can destroy irreplaceable photos, videos, and
documents on drives that appear perfectly healthy. HashCheck creates a verified
baseline of your archived files and alerts you when something has silently changed
— before you find out the hard way.
What it does
Create — scan a drive or folder and record a hash baseline. Runs in the
background; your PC stays responsive throughout.
Validate — compare your files against the baseline. HashCheck doesn't just
flag mismatches — it tells you why:
- 🔴 Corrupted — hash differs but size and date unchanged. Classic bit-rot.
- 🟡 Modified — hash differs and size or date changed. Probably a legitimate edit.
- ⚫ Missing — was in the baseline, gone from the drive.
- 🟢 New — on the drive, not yet in the baseline.
Reminders — set a validation interval per archive. HashCheck reminds you
when a set is overdue so cold archives don't go unchecked for years.
Re-create — when you intentionally update an archive, re-baseline it.
The old .hash file is automatically backed up first.
Autoscan — optionally add new files to the baseline automatically when
a drive is connected, without re-hashing everything.
Media Groups — register multiple physical copies of the same archive
(local drive, NAS, USB backup). Validate all copies in one pass, and repair
a corrupted copy from a known-good one.
Cross-Drive Repair — when corruption is found, HashCheck can copy the
good version from another registered copy, verify the repair hash matches
the stored baseline, and replace the corrupted file — automatically.
Key details
- Runs quietly in the system tray — out of your way until needed
- Portable — unzip and run, nothing to install, no registry entries
- Default hash algorithm: XxHash3 (fast, non-cryptographic — optimised
for speed on large archives, not tamper resistance)
Also supports: MD5, SHA-1, SHA-256 .hashfiles are plain UTF-8 text — human-readable and stable across versions- Archives identified by volume serial number, not drive letter — works
correctly when drives move between machines or change letters - All file operations use atomic writes — a partial or corrupt
.hash
file is never left on disk - Supports long paths (beyond the Windows 260-character limit)
- Windows 10 / 11 x64
Download
HashCheck-v1.0.0-portable.zip — unzip anywhere, run HashCheck.exe.
No installation required.
Verification
SHA-256: 92d9869d674364ba22d7a6df54ab49f5e63f881d51b0345dcafea9ff54e5ea1d
VirusTotal: https://www.virustotal.com/gui/file/92d9869d674364ba22d7a6df54ab49f5e63f881d51b0345dcafea9ff54e5ea1d/detection
Background
HashCheck was inspired by watching a photographer lose archived shoots to
bit-rot on drives that showed no errors. The goal: a tool that's simple
enough for non-technical users but honest enough to tell you what kind
of change it found — because a corrupted file and an edited file are very
different problems.
Feedback & Issues
Found a bug or have a suggestion? Open an issue — all feedback welcome.