Generate MD5, SHA-1, SHA-224, SHA-256, SHA-384 or SHA-512 values from text. Choose an HMAC variant to include a key, then copy the hexadecimal result.
Runs locally in your browserSix digests and the same six again with a key: MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512, each also available as HMAC. Every value was checked against an independent implementation — 36 digests per language, 12 algorithms over three inputs, matching to the last hex character.
The result is lowercase hexadecimal and nothing else: 32 characters for MD5, 40 for SHA-1, 56 for SHA-224, 64 for SHA-256, 96 for SHA-384 and 128 for SHA-512. Hashing runs in the page, so the text never leaves the browser and the tool works offline once loaded.
MD5 and SHA-1 are here for checksums and for systems that still ask for them; SHA-256 and SHA-512 are the ones to reach for when the digest is going somewhere new. SHA-224 and SHA-384 are the truncated variants of those two and are included because some libraries and certificate tooling name them explicitly.
All twelve are one-way — the page has no reversing function — and the digest of a single character is as long as the digest of a megabyte. The text "abc" gives 900150983cd24fb0d6963f7d28e17f72 under MD5 and ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad under SHA-256, which is what an independent implementation returns for the same three bytes.
HMAC mixes a secret key into the hash, so the same text yields a different digest for every key. The field is hidden until an HMAC button is pressed and hidden again as soon as a green button is pressed: a plain digest never uses the key, whatever sits in that field.
Keys longer than the hash block size are hashed first, as RFC 2104 requires, and an empty key is accepted — the page returns the digest of the text under an empty key instead of refusing. SHA-224 and SHA-384 truncate their output, which is where JavaScript HMAC helpers tend to go wrong; both were checked against an independent implementation here and match it.
The result box holds the plain hex string: no prefix, no separator, no algorithm label and no added newline. That drops straight into a checksum file or a command line, and it also means pairing the digest with a filename is a manual step.
This is a hash calculator, not a password storage scheme. It applies the chosen function once, with no salt and no iteration count, and nothing here stores or compares values. For passwords use a dedicated function such as bcrypt, scrypt or Argon2 rather than a bare SHA-256 digest.
The libraries come from the site, the hashing happens in the page: after loading, hashing produced no request at all, and the text is never uploaded. A 4.8 MB input was hashed with SHA-256 in about 0.6 seconds, a 1 MB input in about 0.2 seconds.
The input is a text box, so the tool hashes text as UTF-8 and binary files are out of scope — their bytes would have to be encoded first. For files and archives, compare the digest your operating system produces with sha256sum or certutil, which read bytes directly.