KKwikfig.

Hash Generator (SHA)

Compute SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or a file, entirely on your device with the Web Crypto API — nothing is uploaded or stored. Runs entirely in your browser — your numbers never leave this device.

Input
Text to hash

Hashes are computed on your device with the Web Crypto API; the file is read locally and never uploaded, and nothing you type or choose is stored. MD5 is not offered: it is not part of the Web Crypto API, and hand-rolled cryptography is a correctness risk — MD5 is also broken as a security hash, so modern tools should not encourage it.

How it works

Hash = SHA-n(message bytes), printed as lowercase hex | SHA-1 → 160 bits = 40 hex digits | SHA-256 → 256 bits = 64 hex digits | SHA-384 → 384 bits = 96 hex digits | SHA-512 → 512 bits = 128 hex digits | Text is encoded as UTF-8 bytes first
The four algorithms — digest sizes
AlgorithmDigest sizeHex digitsStatus
SHA-1160 bits40Legacy — fine for checksums, broken for collision resistance
SHA-256256 bits64Current workhorse — the safe default
SHA-384384 bits96SHA-512 truncated to 384 bits
SHA-512512 bits128Largest here — common for file fingerprints

A cryptographic hash turns any input — a word, a password candidate, a two-gigabyte disk image — into a fixed-length fingerprint. This tool computes four of them at once (SHA-1, SHA-256, SHA-384 and SHA-512) using the Web Crypto API built into your browser: text is encoded as UTF-8 bytes, a chosen file is read as raw bytes, and the digests come back as lowercase hex. Change one bit of the input and roughly half the hex digits change; run the same input twice and the output is identical, which is what makes hashes useful for checksums, deduplication and integrity checks.

Two honesty points. First, privacy: hashes are computed on your device with the Web Crypto API; the file is read locally and never uploaded, and nothing is stored — important, because the files people hash are often exactly the ones they would not want on a stranger's server. Second, MD5 is deliberately missing: it is not part of the Web Crypto API, and hand-rolled cryptography is a correctness risk this tool will not take. MD5 is also collision-broken, so leaving it out is good riddance twice over. SHA-1 is included for compatibility and checksum work, but it is likewise no longer safe against deliberate collision attacks — for anything security-critical, SHA-256 or stronger is the floor.

What a hash is not: it is not encryption. There is no key and no way back — you cannot recover the input from the digest, only confirm that a candidate input produces it. That one-wayness is why comparing a downloaded file's SHA-256 against the publisher's printed digest proves the download is byte-for-byte what was published, without trusting the mirror that served it.

Worked examples

Hashing a word with SHA-256

Input
Text = hello, Algorithm = SHA-256
Working
hello is five UTF-8 bytes (68 65 6c 6c 6f). SHA-256 pads and processes them in one 512-bit block and returns 256 bits, written as 64 hex digits.
Result
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

The empty string has a hash too

Input
Text = (empty), Algorithm = SHA-256
Working
Zero bytes still go through padding and compression — the digest of nothing is a specific, well-known constant. It is a useful smoke test: any correct SHA-256 implementation must reproduce it exactly.
Result
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

A longer fingerprint with SHA-512

Input
Text = Kwikfig, Algorithm = SHA-512
Working
Seven bytes in, 512 bits out — 128 hex digits. The same input under SHA-256 would give a completely unrelated 64-digit value; hashes from different algorithms are not prefixes or extensions of each other.
Result
3180506a7793b8ca7ce89b93a6cd31eafc2d9915e53b8f4588b724deb1ce5a6bde7aa3aedacfc2795ce4ff69f8dd40a3ccc9e8fae63fc518cd046be495d17b78

Frequently asked questions

Why is MD5 not offered?

Two reasons. It is not part of the Web Crypto API — the browser's audited, native cryptography library — and implementing it by hand in page code would be hand-rolled crypto, a correctness risk for a tool whose whole job is producing exactly-right digests. MD5 is also broken: collisions can be constructed cheaply, so no new workflow should depend on it.

Is SHA-1 safe to use?

For checksums against accidental corruption, yes. For security — signatures, certificates, proving two files differ against an attacker — no: practical collision attacks against SHA-1 have existed since 2017. This page computes it because old systems and published checksums still use it, but SHA-256 is the minimum for anything adversarial.

Can I recover the original text from a hash?

No — a hash is a one-way function. The only way to 'reverse' one is to guess inputs and hash them until a digest matches, which is feasible only when the input space is small (a short password, a known filename). That is precisely why unsalted hashes of weak passwords leak them, and why this tool's digests of your text reveal nothing by themselves.

How do I check a downloaded file with this?

Switch to file mode, choose the download, and compare the SHA-256 (or whichever digest the publisher lists) character for character with the publisher's value — ideally from a different source than the download itself. Any difference, even one hex digit, means the bytes differ: a corrupted or tampered file.

Is my file uploaded for hashing?

No. Hashes are computed on your device with the Web Crypto API; the file is read locally and never uploaded, and the text you type is never stored. The digests exist only in your tab.

Why does the same text give a different hash in another tool?

Usually an encoding difference: the other tool may hash the text as Latin-1 or UTF-16 bytes instead of UTF-8, or include a trailing newline you did not notice. For pure-ASCII text all byte encodings agree, which is why the hello example (2cf24dba…) reproduces everywhere; discrepancies appear with non-ASCII characters or hidden whitespace.

Related tools

More in Developer Tools · Browse all tools