Every hash algorithm converts input data into a fixed-length string. The difference is length, speed, and collision resistance:
| Algorithm | Output Length | Speed | Collision Resistant? | Use For |
|---|---|---|---|---|
| MD5 | 128 bits (32 hex chars) | Very fast | No — broken | File checksums, deduplication (NOT security) |
| SHA-1 | 160 bits (40 hex chars) | Fast | No — broken (2017) | Legacy systems, Git commits |
| SHA-256 | 256 bits (64 hex chars) | Medium | Yes | Digital signatures, certificates, blockchain |
| SHA-512 | 512 bits (128 hex chars) | Medium | Yes | High-security applications, password hashing base |
| CRC32 | 32 bits (8 hex chars) | Fastest | No | Error detection in file transfers, ZIP files |
The rule: MD5 for quick file verification (download integrity checks). SHA-256 for anything security-related (certificates, signatures, blockchain). CRC32 for error detection where speed matters. Never use MD5 or SHA-1 for password hashing or digital signatures.
The text Hello World produces these hashes:
| Algorithm | Hash Output |
|---|---|
| MD5 | b10a8db164e0754105b7a99be72e3fe5 |
| SHA-1 | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
| SHA-256 | a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e |
Notice: change even one character (lowercase "w" in "world") and the entire hash changes completely. This is the avalanche effect — small input changes produce drastically different outputs. Try it yourself with the Hash Generator.
You download a 2GB installer and want to verify it was not corrupted during transfer. The website provides a SHA-256 checksum. Here is how to verify on each platform:
shasum -a 256 filename.isosha256sum filename.isoGet-FileHash filename.iso -Algorithm SHA256Compare the output to the checksum on the website. If they match character-for-character, the file is identical to what the publisher released. If they differ by even one character, the file is corrupted or tampered with.
Need to generate checksums for every file in a directory? Common for software distribution and data integrity verification:
find . -type f -exec sha256sum {} \;Get-ChildItem -File | ForEach-Object { Get-FileHash $_.FullName }Save the output to a checksums.txt file and distribute it alongside your files. Recipients can verify every file against the published checksums.
Try Hash Generator — free, private, unlimited.
Open Hash Generator