SafeHash 3.3 / Documentation

The SafeHash user guide

Checksums, verified copies, ASC MHL, monitoring and reports. Instructions for SafeHash 3.3 on Windows.

SafeHash checks, copies and monitors files locally on Windows. It combines checksums, manifests, ASC MHL, verified copies, background monitoring with silent-corruption detection and exportable reports. It is not a backup, antivirus or proof that a file is trustworthy. Support is provided by Codelliptica at support@codelliptica.com. The same guidance is available inside the app under Help.

Before installing

Try SafeHash Free first to check that SafeHash runs on your computer. The release targets Windows 11 x64 and uses the Microsoft Edge WebView2 runtime that is part of Windows 11. On a computer where WebView2 was removed, setup tells you and offers Microsoft's download page.

The installers and executables are not Authenticode-signed. Windows can show Windows protected your PC or Unknown publisher. Check the download first: in PowerShell run Get-FileHash .\SafeHash-Pro-3.3.1-Setup.exe and compare the value with the included .sha256.txt file and with the checksum published on codelliptica.com. Then choose More info → Run anyway in the SmartScreen window. Smart App Control or your organization's policy can block unsigned apps; SafeHash does not ask you to disable security controls. Optional detached release signatures (.sig) are distinct from Windows code signing.

Install

  1. Run your edition's installer, for example SafeHash-Pro-3.3.1-Setup.exe, and accept the customer terms. Paid editions use C:\Program Files\SafeHash; SafeHash Free uses C:\Program Files\SafeHash Free.
  2. Paid installers contain their edition's license and install it beside the app. There is no key to type, no account and no activation server.
  3. Pro, Team and Enterprise setup starts the SafeHash background service and sets it to start with Windows, so monitoring is ready immediately.
  4. Open SafeHash from the Start menu.

To upgrade, run the higher edition's installer over the current one. Settings, baselines, audit records and reports are kept. If you received a license key separately, paste it in Licensing → License key; SafeHash always uses the highest valid edition it finds.

For unattended installation, read the supplied terms, then run the installer with /S /ACCEPTTERMS=YES from an elevated session. /S alone does not accept the terms. The installer keeps the accepted text and a local receipt under %ProgramData%\SafeHash\InstallReceipts (administrator access required).

EditionOne-time priceComputersIncludes
Free$0AnyText and single-file checks with SHA-256, SHA-512, BLAKE3, xxHash, MD5 and SHA-1
Pro$391Folders and batches, manifests, ASC MHL, verified copy, monitoring with bit-rot detection, reports, scheduling and CLI
Team$14910Pro plus shared monitoring profiles, structured audit export and evidence ZIPs
Enterprise$39925Team plus signed audit records, policy controls and hardware-token signing (beta)

A seat covers one primary Windows computer. Seats are not enforced technically; install a paid edition only on as many computers as you are licensed for. Paid editions do not expire. This is not a promise of unlimited new features, permanent compatibility or an SLA. MIT and third-party source rights remain governed by their own licenses, which are included with the app.

Find your way around

  • Verify: check a file, text or (Pro and higher) a batch of files and folders. SHA-256, SHA-512, BLAKE3 and xxh64 are shown first; More algorithms holds the rest. Paste a publisher's value in Compare a known checksum.
  • Manifests: create a checksum inventory of a folder and verify it later.
  • Reports: fresh PDF or JSON reports of the Verify input; evidence ZIPs.
  • Copy & Verify: offload cards or folders to up to four destinations and prove every copy.
  • ASC MHL: create and verify ASC Media Hash List histories.
  • Monitoring: watch folders against an accepted baseline.
  • Hardware Token, Performance, Settings, Licensing and Help hold the remaining functions. Help includes Check for updates and support.

Choosing an algorithm: SHA-256 is the standard; BLAKE3 is cryptographic and very fast; xxHash (xxh64, xxh3, xxh128) is the fastest and is standard for media offloads, but it detects accidental corruption rather than deliberate tampering. MD5 and SHA-1 are for matching legacy published values.

Important migration from 3.1.0 and earlier

Preserve your original files, old manifests and audit data before upgrading. Two earlier hashing paths were incorrect:

  • The old SafeHash KangarooTwelve/K12 implementation substituted SHA3-256. SafeHash v1 manifests containing K12 are rejected with a regeneration message.
  • The old optimized path for files larger than 50 MiB could produce a digest of chunk digests instead of the named standard algorithm. Recompute affected values from trusted original files. Do not merely rename an old digest.

3.2.0 and later use genuine K12/KT128 with 32 output bytes and an empty customization string. BLAKE2b in SafeHash means BLAKE2b-256. Other algorithm parameters are identified in the app and manifests.

Old monitoring snapshots are not automatically accepted as trusted baselines. After upgrading, inspect the current files and explicitly create a new baseline from known-good content. Starting the service or opening the app will not bless changed files. Existing unsigned audit history, if imported, is explicitly marked as a legacy prefix; adding a new signature does not authenticate its past origin.

Setup stages the complete new app before replacing the old one. On upgrade it preserves the previous app directory beside the installed app, named SafeHash.previous-<identifier> (or SafeHash Free.previous-<identifier>). Upgrading from 3.2 archives its large bundled browser runtime with the previous app; delete that archive after checking the upgrade to recover the space. Keep your own backup of customer data too: this preserved directory is not a backup of your user folders or machine audit store.

Before the new service starts, setup can restore the previous app after a failed replacement. Once it commits the new version, it retains that version even if the service cannot start, because new audit records may already use the new format. Do not manually run the old service against the updated audit store. If setup reports a recovery problem, preserve the named .setup and .previous- folders and contact support. Re-running the full installer can recover an interrupted replacement; do not delete its recovery files first.

Hash text, files or folders

Select the appropriate input mode, choose algorithms and run the check. For routine integrity checks, SHA-256 is a straightforward default. MD5 and SHA-1 are available for legacy compatibility and should not be relied on against deliberate collision attacks.

The result identifies the source and algorithm. Batch processing is a Pro-and-up feature. Recursion applies only when selected. Repeated selections are not meant to duplicate the same file's results. A failed input is reported; do not treat a partial batch as a complete verification.

Close applications actively writing a file before hashing it. On Windows, SafeHash obtains a stable read and refuses incompatible writers. For databases, virtual-machine disks and other live files, use an application-approved snapshot or backup rather than assuming an arbitrary live read is consistent.

Long operations show progress. Byte counts refer to the current file, not a guessed percentage of a whole folder. Some operations cannot know their total in advance. Cancel requests cancellation; wait until the app confirms it has stopped. A completed export may already exist if cancellation was requested at the final publication or hardware-signing stage.

Generate and verify manifests

A manifest records a selected folder's file paths, algorithms and hashes. Generate it from known-good data and keep a trusted copy. New SafeHash manifests use format v2 and explicitly label every algorithm. The output manifest and its temporary staging file are excluded from their own calculation; ordinary files are not skipped just because their names contain "hash" or "manifest".

Verification checks every record. Empty manifests, malformed lines, duplicates, unsafe paths, missing files and mismatched digests must be resolved. Select the correct base folder when verifying a moved copy. An entirely successful result requires actual file entries and matching results for all of them.

Verified copy

Copy & Verify (Pro and higher) copies files or whole folders to one to four destination folders or drives.

  1. Add the sources (camera cards, folders or files) and the destinations.
  2. Choose the checksums. xxh64 is fast and is what most DIT tools use; add SHA-256 when you also want a cryptographic record.
  3. Keep Write an ASC MHL history on to add a transfer generation to each copied folder, then start the copy.

SafeHash reads each source once while writing every destination, then reads every destination back and compares it with the source checksum. Files are written under a temporary .safehash-partial name and renamed only when complete. Existing destination files are never overwritten: an identical file is accepted after verification and a different file is reported. Modified times are kept. Links and special files are skipped and listed. A JSON report with every file's checksums, and a readable .txt summary, are saved under %AppData%\SafeHash\exports\copy-reports.

ASC MHL

ASC Media Hash List (ASC MHL) is the Academy's format for recording checksums of camera media and deliveries. Its history lives in an ascmhl folder inside the card or delivery folder, with one generation per copy or check and a chain file that detects edited generations.

  • Create a generation (Pro and higher): choose the folder and one or more formats (xxh64, xxh3, xxh128, md5, sha1 or c4). SafeHash hashes every file, verifies files recorded in earlier generations, writes directory and root hashes the same way as the reference ascmhl tool and appends to the chain. A generation is written even when problems are found, so the record is complete; the result lists every failed or missing file.
  • Verify is read-only. Choose a folder with an ascmhl history, or a standalone .mhl file (ASC MHL manifest or legacy MHL 1.1 with md5, sha1 or xxhash64be values). The result lists verified, changed, missing and unrecorded files and any edited generation.

Histories written by Silverstack, ShotPut Pro, Hedge, YoYotta and the ascmhl tool can be verified and extended. Nested card histories inside a larger folder should be recorded card by card.

The CLI offers the same operations:

safehash-cli copy --to E:\ --to F:\ --mhl -a xxh64,sha256 "D:\A001_CARD"
safehash-cli mhl create --formats xxh64 "E:\A001_CARD"
safehash-cli mhl verify "E:\A001_CARD"

copy and mhl return exit code 2 when a check finds problems.

Configure background monitoring

  1. Pro and higher installers start the service automatically. If it was stopped, open SafeHash as administrator and choose Enable background service in Licensing.
  2. Choose the folders, algorithms, recursion and depth. Depth zero means unlimited recursion; turn recursion off to check only the selected directory level.
  3. Save the configuration. Check the files, then explicitly establish the baseline you are accepting as known good.
  4. Start monitoring. It performs a complete comparison on startup. Configure the optional schedule for subsequent full checks and autostart if required.
  5. Read alerts and the last completed verification time. Use Verify now after restoring a file to the accepted contents.

Changed, new, deleted, renamed and unreadable files are findings. Starting or restarting monitoring does not reset the baseline or make findings disappear. The monitor keeps unresolved findings across restarts. Restoring accepted bytes and verifying resolves the relevant finding; accepting a new complete baseline is a deliberate decision to trust the current state. After accepting a new baseline while monitoring is already running, use Verify now to complete a fresh comparison. Starting an already-running monitor does not itself perform that additional verification.

"Protected" means the configured monitoring scope has an accepted baseline, a completed current verification and no unresolved findings or reported integrity errors. It is not a security verdict for the entire computer. A stopped service, missing baseline or incomplete scan must not be read as protection. Filesystem notifications alone are not exhaustive; reconciliation and scheduled checks are part of the workflow. Keep backups separately.

Enterprise policy locking can restrict configuration changes and stopping monitoring through SafeHash. It is an application policy; a Windows administrator can still administer the computer and its services outside the app. In Settings, Team and Enterprise can prepare the saved monitoring settings as JSON, copy them to a local file, and load/apply that file on another machine. Review its paths first. Applying a shared profile replaces monitoring settings and requires an explicitly accepted new baseline. Unsupported legacy ignore or notification settings must be removed before applying; they are not silently ignored. Enterprise policy controls also appear in Settings. Unlock the existing policy before replacing its shared service license. Requiring monitoring needs autostart, a running monitor and an accepted baseline. A damaged policy blocks changes until an administrator repairs it.

Possible corruption (bit rot)

If a monitored file's content no longer matches the baseline but its size and modified time are exactly unchanged, SafeHash reports Possible corruption instead of an ordinary change. Normal editing always updates the modified time, so this pattern usually indicates silent data corruption from a failing drive, cable, controller or storage system, or a tool that deliberately restored the timestamp. Restore the file from a known-good backup and check the drive. Scheduled verification of archives, NAS shares and backup drives is the most effective way to find this early.

Reports and signatures

Choose Text, File or Batch as the report source, then PDF or JSON and an output location. Report generation recomputes the selected input at that time; it does not silently reuse an old on-screen result. Every source/algorithm pair is retained. A failed input prevents a successful complete report.

PDF hashes wrap without being truncated. Unicode file names use reversible quoted escapes in PDFs to avoid silent missing glyphs; JSON keeps native Unicode. The report states its generation time and scope. Show output in folder reveals the saved file in Explorer without executing it.

Enterprise's optional hardware signing is a beta feature. It can create detached report or manifest signatures using a compatible, configured token and certificate. On Windows, SafeHash uses compatible signing certificates available to this Windows account through a Windows smart-card provider. A compatible YubiKey also needs this provider and certificate setup; inserting the device alone does not make it available for signing. Configure the certificate for the Windows account running SafeHash, then use Refresh in Hardware Token and select the intended certificate. Physical-device compatibility still requires validation with your exact setup. The signed file is accompanied by .sig and .crt files. Keep all three together. Signing and cancellation are checked before publishing the new report or signed manifest. A signing failure preserves the previous files. A disk failure during the final publication can leave an incomplete set and is reported as an error; verify all three before use. Save signed manifests outside their source folder so their signature companions do not become inputs to the manifest being regenerated.

A valid signature with the adjacent certificate proves consistency with that certificate's key. It does not identify the signer unless you obtain and compare the expected SHA-256 certificate fingerprint through an independent trusted channel. Certificate validity is checked against the current local clock; no independent signing timestamp or online revocation check is implied. Test your particular token, reader, provider and certificate before relying on this feature. Never place token PINs in support messages or shared command history.

Audit and evidence packages

Background service records and manual desktop records have separate scopes:

  • Service configuration, monitoring and service actions use the machine audit under %ProgramData%\SafeHash\audit.
  • Manual desktop exports and signing use the current user's audit under %AppData%\SafeHash\audit.

Export service audit in Settings requires an administrator session connected to the background service. Local evidence exports can include the current user's audit without access to the machine audit. Review the indicated scope before sharing an export; one store does not include the other store's events.

An export names its source store. Team structured activity exports are explicitly unsigned. Enterprise signed exports include a local Ed25519 signer, checkpoint and an explicit count of any unsigned legacy prefix. The Windows signing key is protected for its local account using DPAPI. Back up the complete store before machine changes; copying an encrypted key to another account does not make it usable there.

Keep an independently trusted public-key fingerprint if you need to establish the export's signer. A valid old export can be replayed and does not prove freshness. Local timestamps are not independent timestamps. Removing a retained key/checkpoint or truncating a log is an error, not an invitation to silently reset its history. Contact support before changing a damaged audit store.

An evidence ZIP includes the actual target files and attachments you selected, case/operator information and a complete SHA-256 inventory. It may include the scoped audit where the edition supports it. Missing attachments, incomplete signature pairs, unsafe paths and files that change during capture cause failure. Exported ZIP contents are independently checked after creation.

Review the package before sharing: it contains file contents and can contain private paths or identifying case details. Inventory hashes establish content integrity. They do not establish origin against an attacker replacing both the files and inventory. Operator-entered custody information is a record you supply, not a guarantee of a complete legal chain of custody or court acceptance.

CLI and repeatable work

The bundled CLI is safehash-cli.exe. Run safehash-cli.exe --help for the current command list and add --help to a subcommand for its options. Automation features require Pro or higher; license management and Explorer hashing are also available to every paid edition. Prefer license-file import to placing a key in command history.

Monitoring commands address the actual background service. Baseline and verify commands use jobs; job-status and cancel report the real operation. An interrupted client does not by itself prove that a server job stopped. Keep the job ID and check its final status. For independent audit or evidence checking, consult the CLI verification commands and supply trusted signer fingerprints where required.

The Explorer Hash with SafeHash action opens a console that keeps its result or error visible until you press Enter. Ordinary CLI commands do not pause. Use the full offline installer to install or remove Explorer integration and the Windows service; old standalone integration/service setup commands are unsupported.

Performance measurements

Quick mode hashes 1 MiB and 10 MiB test files. Full mode adds larger sizes up to 1 GiB, so it takes longer and needs temporary disk space. Both use the selected canonical algorithms and a bounded iteration count. Values are measurements of this computer under its current load, storage and cache conditions; they are not portable performance guarantees. Memory measurements reflect process allocations during the benchmark and are not a precise peak-memory measurement of one hash.

Troubleshooting and maintenance

  • Unknown publisher or blocked app: consult your Windows or organizational policy and verify the official download. Do not disable protections as a fix.
  • Blank window or app will not start: SafeHash uses the WebView2 runtime built into Windows 11. If it was removed, install Microsoft's Evergreen WebView2 Runtime and start SafeHash again.
  • Service unavailable: verify installation, enable the service from an administrator session and check the machine entitlement. Local manual work is separate from service availability.
  • Locked or unreadable file: close the writing application or choose a safe snapshot, and check the signed-in user's access.
  • Baseline required: review trusted files and explicitly establish a baseline. Repeatedly pressing Start does not accept one.
  • Audit invalid: preserve the complete files and contact support. Do not delete a checkpoint, signing key or old record to make a status indicator turn green.
  • Signing unavailable: check compatible hardware/provider/certificate setup. Mock-token tests do not demonstrate that a physical device works.

Maintenance releases focus on defects and security. Use Help → Check for updates to see whether a newer version exists; SafeHash never checks on its own. Install updates by running the new installer. No continuous feature-update subscription or enterprise response-time guarantee is included. When requesting help, include the SafeHash version, Windows version, action and error. Remove confidential data from diagnostic excerpts.

Uninstall and retained data

Use Windows Installed apps or the SafeHash uninstaller. It removes the app, its edition license file, shortcuts, Explorer entry and service registration. Imported licenses, baselines, audits and saved exports are preserved to avoid accidental loss. Their usual locations are %AppData%\SafeHash for the signed-in user and %ProgramData%\SafeHash for the service. Exports may also be in locations you chose. Terms receipts and previous-installation archives are also preserved. Uninstall does not erase unrecognized files you placed in the app's top-level directory.

After preserving anything you need and uninstalling, you can remove those exact SafeHash data folders manually; machine data requires administrator access. Deleting them can permanently remove evidence or the ability to verify/reuse local signing history. Other Windows users have their own separate user folders. After a successful upgrade and verification, an administrator may separately remove the exact previous-installation archive once any customer files in it have been backed up. Keep it while an upgrade or service problem is unresolved.

Read COMMERCIAL_TERMS.txt, PRIVACY_NOTICE.txt, LICENSE and THIRD_PARTY_LICENSES.md for the associated customer terms and component rights.