Compare Hashes

Compare Hashes

Updated August 27, 2026

Two hashes can look the same and still differ by one character, and they can look different and still be the same bytes. Eyeballing a 64-character hex string is how a bad ISO ships.

Two hashes can look the same and still differ by one character, and they can look different and still be the same bytes.

Paste Hash A and Hash B. Ignore case and ignore whitespace are on because a checksum page almost always adds a newline or switches case.

How to use it

  1. Same algorithm, same encoding. MD5 vs SHA-256 never matches. Hex vs Base64 of the same digest never matches until you decode one.
  2. Leave Ignore case on for hex. 5D41… and 5d41… are the same digest.
  3. Leave Ignore whitespace on. A trailing newline is not a mismatch.
  4. If they still fail, the inputs were not the same bytes. Windows CRLF vs Linux LF hashes as two different files.

When it breaks

  • A match on SHA-256 or SHA-512 means the bytes are the same. A match on MD5 or SHA-1 is almost certainly the same file, unless someone engineered a collision.
  • This is not password checking. Do not treat SHA-512 as secure password storage.
  • Don't === raw hex in JS without normalizing case. That's why auth scripts reject hashes that are actually equal.

Hash A

0 chars

Hash B

0 chars

Tips

  • Case insensitive - MD5 hashes are often shown in uppercase or lowercase
  • Verify downloads - Compare downloaded file hash against expected value
  • Data integrity - Ensure files weren't corrupted or modified

Features

  • Side-by-side Hash A and Hash B with a clear match or mismatch
  • Ignore case is on for hex: `5D41…` and `5d41…` are the same digest
  • Ignore whitespace is on so a trailing newline is not a mismatch
  • Character-level visual diff when the normalized strings still differ
  • Does not treat SHA-512 as password storage

Common Use Cases

  • Checking a downloaded ISO checksum without eyeballing 64 hex characters
  • Comparing two digests that differ only in case or a trailing newline
  • Catching MD5 vs SHA-256 or hex vs Base64 before calling it a mismatch
  • Seeing that Windows CRLF and Linux LF hash as two different files

Two hashes can look the same and still differ

Two hashes can look the same and still differ by one character, and they can look different and still be the same bytes. Eyeballing a 64-character hex string is how a bad ISO ships.

Paste Hash A and Hash B. Ignore case and ignore whitespace are on because a checksum page almost always adds a newline or switches case. Leave Ignore case on for hex. 5D41… and 5d41… are the same digest. Leave Ignore whitespace on. A trailing newline is not a mismatch.

Same algorithm, same encoding. MD5 vs SHA-256 never matches. Hex vs Base64 of the same digest never matches until you decode one. If they still fail, the inputs were not the same bytes. Windows CRLF vs Linux LF hashes as two different files.

A match on SHA-256 or SHA-512 means the bytes are the same. A match on MD5 or SHA-1 is almost certainly the same file, unless someone engineered a collision. This is not password checking. Do not treat SHA-512 as secure password storage.

Examples

Valid - Case Insensitive Match
Hash A: 5D41402ABC4B2A76B9719D911017C592
Hash B: 5d41402abc4b2a76b9719d911017c592
Result: Match (Valid)
Invalid - Mismatch
Hash A: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hash B: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9825
Result: Mismatch (Invalid)

Frequently Asked Questions

If two hashes match, are the files the same?

A match on SHA-256 or SHA-512 means the bytes are the same. A match on MD5 or SHA-1 is almost certainly the same file, unless someone engineered a collision.

Why are Ignore case and Ignore whitespace on?

Paste Hash A and Hash B. Ignore case and ignore whitespace are on because a checksum page almost always adds a newline or switches case. Leave Ignore case on for hex. 5D41… and 5d41… are the same digest. Leave Ignore whitespace on. A trailing newline is not a mismatch.

Why do my hashes still fail?

Same algorithm, same encoding. MD5 vs SHA-256 never matches. Hex vs Base64 of the same digest never matches until you decode one. If they still fail, the inputs were not the same bytes. Windows CRLF vs Linux LF hashes as two different files.

Is this password checking? Is SHA-512 password storage?

This is not password checking. Do not treat SHA-512 as secure password storage.

Why does a JavaScript === comparison reject hashes that look equal?

Don't === raw hex in JS without normalizing case. That's why auth scripts reject hashes that are actually equal.

Tips

  • Two hashes can look the same and still differ by one character, and they can look different and still be the same bytes. Eyeballing a 64-character hex string is how a bad ISO ships.

Common Mistakes

A match on SHA-256 or SHA-512 means the bytes are the same. A match on MD5 or SHA-1 is almost certainly the same file, unless someone engineered a collision.
This is not password checking. Do not treat SHA-512 as secure password storage.
Don't `===` raw hex in JS without normalizing case. That's why auth scripts reject hashes that are actually equal.