Skip to content

TheHolyOneZ/ZHashCheck

Repository files navigation

ZHashCheck

ZHashCheck

Fast, fully offline file hashing for everyone.

Drag a file in. Get every hash instantly. Verify a download. Compare folders. Find duplicates and reclaim space — safely.

Download License Platform Offline

Built with Tauri v2 · React · Rust · TypeScript


✨ What is ZHashCheck?

ZHashCheck is a desktop app that does one thing extremely well: it tells you the digital fingerprint of any file on your computer, so you can:

  • Make sure a download isn't corrupted or tampered with
  • 🔍 Spot duplicate files eating up your disk space
  • 📁 Compare two folders to see if anything changed
  • 📋 Read or generate SHASUMS files like the ones published by Ubuntu, Debian, VLC, and most open-source projects

You don't need to know what a "hash" is to use it. Just drop a file in the window and ZHashCheck shows you the answer.

Nothing is ever sent anywhere. ZHashCheck has no internet access and stores all your history locally on your machine.


🧭 Tour of the app

Tab What it does
Hash Drop files (or a whole folder) anywhere in the window. Every algorithm you've enabled is computed in one pass over the file. Results stream in live — click any hash to copy.
Verify Paste a hash you got from a website to confirm your download matches. Or open a whole SHASUMS file to verify every file in a release at once.
Compare Point at two folders. ZHashCheck hashes both trees and shows you exactly which files are identical, which differ, and which exist on only one side.
Duplicates Pick one or more folders to scan. ZHashCheck groups identical files together so you can free up space. Deletions always go to the OS Trash, never permanently.
History Every file you've ever hashed is saved locally in a small SQLite database. Search by path or hash and find what you computed weeks ago.
Settings Pick your default algorithms, theme (system/light/dark), density, history retention, and more.
About Project info, links, license, and credits.

🚀 Get it

💡 All pre-built installers live on the project homepage — not on GitHub. GitHub only hosts the source. Downloads are exclusively at zsync.eu/zhashcheck.

🪟 Windows

Download the .msi installer
Windows 10 / 11

🍏 macOS

Download the .dmg
macOS 11 Big Sur or newer

🐧 Linux

.deb · .rpm · AppImage
Most modern distros

👉 Download ZHashCheck from the official homepage

Prefer to compile it yourself? See Building from source below — the full code is on GitHub.


🧠 Why use a hash checker?

When you download a file from the internet, two bad things can happen:

  1. The download can get corrupted along the way (your file ends up broken).
  2. Someone could tamper with the file (giving you malware instead of the real thing).

Most trustworthy projects publish a hash (a long string of letters and numbers) next to the download. If you compute the hash of your downloaded file and it matches theirs, you know the file is byte-for-byte correct.

ZHashCheck makes this:

  • Instant — just drag the file in.
  • 🧷 Safe — comparisons are done in constant time (no timing leaks).
  • 🧠 Smart — the algorithm is auto-detected from the hash length, so you don't have to guess.

🏆 What makes ZHashCheck different?

🚄 Genuinely fast

One read pass feeds every algorithm in parallel. Computing SHA-256 + BLAKE3 + MD5 takes no longer than computing just one — because we only touch the bytes once.

🔒 Truly offline

No internet access. No telemetry. No auto-updater pinging a server. You can verify this yourself: cargo tree | grep reqwest returns nothing.

🧹 Safe duplicate removal

The deduper uses a three-stage filter (size → quick xxh3 → full BLAKE3) so it only fully hashes files that could be duplicates. And every delete goes to your OS Trash — never permanently.

⌨️ Keyboard-first

Everything has a shortcut. Ctrl/Cmd+K opens the command palette. Right-click anywhere useful for context actions. Switch tabs with ⌘1⌘8.


🔬 Supported algorithms

Click to expand the full list
Family Algorithms Notes
Modern (recommended) SHA-256 · SHA-512 · BLAKE3 · BLAKE2b · BLAKE2s · SHA3-256 · SHA3-512 Use these for new work.
Common SHA-224 · SHA-384 Less popular but still secure.
Legacy MD5 · SHA-1 Marked with a yellow "legacy" tag — still useful for integrity checks against publishers who only provide them, but not safe for security purposes.
Non-cryptographic xxh3-64 · xxh3-128 · CRC32 Extremely fast. Good for change detection, not for security.

🛠️ Tech stack

For the curious — what's under the hood
Layer Tech
Desktop shell Tauri v2 — small, native, secure
Backend Rust (tokio + rayon)
Hashing sha2, sha3, md-5, sha1, blake3, blake2, xxhash-rust, crc32fast
Frontend React 18 + TypeScript + Vite
Styling Tailwind CSS + shadcn/ui
UI state Zustand
Big lists TanStack Virtual
Local DB SQLite (via tauri-plugin-sql)
Types ts-rs — Rust structs → TypeScript automatically

No HTTP client. No auto-updater. No telemetry. No crash reporter calling home.


🧑‍💻 Building from source

Skip this section if you just want to use the app — grab a pre-built installer from zsync.eu/zhashcheck instead.

Requirements: pnpm, Rust 1.80+, and your platform's Tauri v2 prerequisites.

# 1) Clone
git clone https://github.com/TheHolyOneZ/ZHashCheck.git
cd ZHashCheck

# 2) Install JS deps
pnpm install

# 3) Run in dev
pnpm tauri dev

# 4) Build installers for your current OS
pnpm tauri build

The built installer for your OS lands in src-tauri/target/release/bundle/.

Other useful commands

pnpm typecheck                                       # frontend type check
pnpm lint                                            # frontend lint
cargo test --manifest-path src-tauri/Cargo.toml      # Rust tests
cargo clippy --manifest-path src-tauri/Cargo.toml \
  --all-targets -- -D warnings                       # Rust lint

🔐 Privacy & security posture

  • 🌐 Zero network calls. The entire dependency tree is audited for HTTP clients and updaters.
  • 🗃️ All data is local. History lives in a SQLite file inside the OS-standard app data folder.
  • 🧮 Constant-time compares. Verifying a hash never leaks timing info.
  • 🗑️ No rm path. Duplicates and deletions always go through the OS Trash via the trash crate.
  • 🪪 Scoped permissions. The app only reads files you explicitly pick or drop in.

👤 Credits

👨‍💻

TheHolyOneZ

Author · Maintainer · Designer

🐙 GitHub  ·  🌐 zsync.eu  ·  More projects, articles, and contact info at zsync.eu.


🔗 Links

🏠 Project homepage https://zsync.eu/zhashcheck/
📥 Downloads (Windows · macOS · Linux) https://zsync.eu/zhashcheck/#download   (the only place pre-built binaries are published)
🐙 Source code https://github.com/TheHolyOneZ/ZHashCheck
🐛 Report a bug / request a feature https://github.com/TheHolyOneZ/ZHashCheck/issues
👤 Developer's GitHub https://github.com/TheHolyOneZ
🌍 Developer's other projects https://zsync.eu/
📜 License (GPL-3.0) https://www.gnu.org/licenses/gpl-3.0.html

📜 License

ZHashCheck is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ZHashCheck is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See LICENSE for the full text.


Made with care by TheHolyOneZ · No telemetry · No network · Local-only history

Packages

 
 
 

Contributors

Languages