What is a hash function? ▾
A hash function takes any input — text, files, data — and produces a fixed-length string called the hash or digest. The same input always produces the same hash, and even a tiny change to the input produces a completely different hash. This makes hashes useful for verifying data integrity, storing passwords securely, and creating digital fingerprints.
Is my text safe? Does it get sent to a server? ▾
Your text never leaves your browser. All computation happens client-side using the Web Crypto API — a built-in browser feature — and pure JavaScript. We have no server that processes your input. You can verify this by checking your browser's Network tab in Developer Tools while using the tool — you'll see zero outgoing requests containing your text.
Can I reverse a hash back to the original text? ▾
No — cryptographic hash functions are one-way by design. Given a hash value, it is computationally infeasible to recover the original input. This is what makes them useful for security. Note: very short or common inputs (like "password") can be found in rainbow tables — precomputed hash databases. That's why password hashing must use slow functions like bcrypt or Argon2, not raw SHA-256.
What is a collision? ▾
A collision occurs when two different inputs produce the same hash output. For a secure hash function, finding a collision should be computationally infeasible. MD5 and SHA-1 have known collision vulnerabilities — practical attacks exist. SHA-256 and SHA-512 have no known practical collision attacks as of 2026.
What is the difference between MD5, SHA-1, and SHA-256? ▾
MD5 (128-bit) and SHA-1 (160-bit) are older algorithms with known cryptographic weaknesses — practical collision attacks exist for both. SHA-256 (256-bit, part of the SHA-2 family) is the current industry standard with no known practical attacks. For any security-sensitive use case, always use SHA-256 or higher. MD5 and SHA-1 are still useful for non-security checksums and legacy system compatibility.
SHA-256 vs SHA-512 — which is better? ▾
Both are secure — SHA-512 simply provides higher security margins (256-bit collision resistance vs 128-bit for SHA-256). On 64-bit systems, SHA-512 can actually be faster than SHA-256 for longer inputs. For most applications, SHA-256 is sufficient. Use SHA-512 where maximum security is required: military, financial, long-term archival.
What is the difference between CRC32 and a cryptographic hash? ▾
CRC-32 is a checksum algorithm designed to detect accidental data corruption — not intentional tampering. It is fast and compact (32-bit) but trivially easy to forge. Cryptographic hashes like SHA-256 are designed to be collision-resistant and one-way, resistant to intentional attacks. Use CRC-32 for error detection in storage/network. Use SHA-256 for security.
Which hash should I use for password storage? ▾
None of the hashes on this site are suitable for raw password storage. For passwords, use a purpose-built password hashing function: Argon2id (best), bcrypt, or scrypt. These are deliberately slow, include a salt, and have tunable cost factors to resist brute-force attacks. Raw SHA-256 is far too fast for password storage — an attacker can try billions of guesses per second.
What does the encoding option (HEX / Base64 / Decimal) change? ▾
The hash itself — the underlying bytes — is identical regardless of encoding. What changes is how those bytes are displayed. Hexadecimal (default) represents each byte as two characters (0-9, a-f). Base64 is more compact and common in APIs and certificates. Decimal shows each byte as its numeric value (0-255). Most applications expect hex format.
Can I hash files, not just text? ▾
The current tool hashes text input (converted to UTF-8 bytes). File hashing — dragging and dropping a file to get its hash — is a feature we're working on. For now, you can hash the text content of a file by pasting it into the input field.
Why does the same word produce different hashes on different tools? ▾
The most common reason is trailing whitespace or a newline character. Many hash tools append a newline to the input. Our tool hashes exactly what you type — no implicit characters added. To compare: ensure you're hashing the exact same bytes. The encoding (uppercase vs lowercase hex) can also differ between tools but represents the same value.