ForHosting KIT · Validation

Compare two file checksums

A checksum comparison is a quick way to confirm that a file arrived with the same content that it had before transfer.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Supply the checksum recorded at the source and the checksum calculated at the destination with the same algorithm. This tool compares them without treating uppercase and lowercase letters as different, rejects values of unequal length, and returns an unambiguous match result. It does not upload, inspect, or hash the file itself, so you retain control of both the file and the checksum calculation process.

Compare the source and destination values

Calculate a checksum for the file before it leaves its source, then calculate another checksum after the transfer finishes. Both calculations must use the same algorithm and settings. Paste the first value into checksum_before and the second into checksum_after. The comparator removes surrounding whitespace, confirms that neither value is empty, and checks that both values contain the same number of characters. It then compares the strings without distinguishing uppercase from lowercase. This behavior is useful for hexadecimal digests because one utility may print lowercase letters while another prints uppercase letters even though the underlying bytes are identical. A true match means the supplied checksum representations agree; a false match means at least one character differs. The result also reports the validated length, which helps document the representation that was compared. The tool deliberately does not infer an algorithm from that length, because multiple checksum formats can share a length and an algorithm name cannot be proven from a string alone. Record the algorithm separately in your transfer procedure so that the destination calculation reliably matches the source calculation method.

Interpret a match without overstating it

When the result is true, the two checksum strings are equal after case normalization. That is strong evidence that the transferred file produced the same digest as the source file under the selected algorithm. It is not evidence that this page calculated either checksum, because the comparator receives only the two strings. It also cannot detect an incorrect operational step in which both values were copied from the same place or calculated from the wrong file. When the result is false, repeat both checksum calculations directly against the intended files before retransferring anything. A mismatch can indicate corruption, an incomplete upload, text-mode conversion, a changed archive, or simply a pasted value from another artifact. Different lengths produce an error rather than false because the capability assumes both values came from the same algorithm. Under that assumption, unequal representations signal a setup or copy error that should be corrected before equality has any useful meaning. Case is the only representational difference ignored. Internal spaces, punctuation, prefixes, or separators remain part of the supplied value, so use comparable output formats or remove tool-specific decoration before submitting the checksums.

Build checksum comparison into a transfer workflow

For an occasional download, calculate the source and destination checksums with trusted local tools, keep the algorithm visible in your notes, and use this comparison for a clear second check. For automated delivery, store the source checksum beside the artifact or in a signed manifest, calculate the destination value after the final write completes, and call the API before marking the transfer successful. A mismatch should stop publication or deployment and preserve enough context to investigate, while a malformed or unequal-length pair should be treated as a configuration error. Choose the checksum algorithm according to the threat and reliability model of the workflow. Modern cryptographic hashes are appropriate when accidental corruption and deliberate substitution matter; older or shorter checksums may still be useful in constrained systems but provide different assurances. This capability does not recommend or enforce an algorithm because its job is intentionally narrower: compare two values that your workflow already produced using the same method. The deterministic solver uses no network, model, random value, or clock. The browser and API therefore return the same result for the same inputs, and automated systems can perform the comparison for $0.002 per request without sending the underlying file.

Verify a downloaded release

Compare the checksum published with a release against the value calculated after downloading its file.

Gate an artifact transfer

Stop a deployment or publication workflow when the destination checksum differs from the recorded source value.

Check backup integrity

Compare checksums produced before and after copying a backup while keeping the backup data outside the comparator.

Is the comparison case-sensitive?

No. Uppercase and lowercase letters compare as equal, which accommodates common hexadecimal output formats.

Why are different checksum lengths rejected?

The inputs are required to come from the same algorithm. Unequal lengths indicate incompatible formats, algorithms, or an incomplete copied value.

Does this tool calculate a checksum from my file?

No. It compares two checksum strings that you provide and never needs the underlying file.

Does a matching result prove the transfer is secure?

It proves only that the supplied values match case-insensitively. The assurance also depends on how the values were calculated, protected, and associated with the correct file.

Are spaces ignored?

Only whitespace around each complete value is removed. Spaces or separators inside a checksum remain significant.

What does the API comparison cost?

Each API request costs $0.002. The same deterministic comparison can also run in the browser.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/verify/file-checksum-compare

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/verify/file-checksum-compare \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"checksum_before":"9e107d9d372bb6826bd81d3542a419d6","checksum_after":"9E107D9D372BB6826BD81D3542A419D6"}'
{
  "checksum_before": "9e107d9d372bb6826bd81d3542a419d6",
  "checksum_after": "9E107D9D372BB6826BD81D3542A419D6"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "verify.file_checksum_compare",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →