Skip to content

Hash Generator

Generate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 digests of any text or file, optionally as an HMAC with a secret key. Paste a published checksum to verify a download. Everything is computed in your browser; nothing is uploaded.

Runs in your browserFreeNo sign-up

Processed on your device. Files and text stay in your browser and are not uploaded to our servers. How privacy works

How to use the hash generator

  1. Choose Text and type or paste your input, or choose File and drop a file of up to 200 MB.
  2. Read the five digests as they compute. Toggle Uppercase hex if the system you're matching prints capitals.
  3. To verify a download, paste the checksum from the vendor's page into the Compare field. The matching algorithm lights up green.
  4. Switch on HMAC and enter a secret key to produce keyed signatures, as used by webhook verification and API signing.
  5. Copy a single digest with its button, or copy or download all of them as a checksums file.

Features

  • MD5, SHA-1, SHA-256, SHA-384 and SHA-512 side by side, computed in parallel
  • Hashes files locally with the WebCrypto API, so large files never leave your device
  • HMAC mode for every algorithm, including HMAC-MD5 and HMAC-SHA256
  • Checksum verification: paste an expected value and see which digest matches
  • Uppercase or lowercase hex, per-digest copy buttons and a downloadable checksums file

Which algorithm should you use?

SHA-256 is the sensible default for integrity checks, signatures and content addressing; it is what most download pages, Git (in SHA-256 mode), Docker and package managers use today. SHA-512 is slightly faster on 64-bit hardware and produces a longer digest; SHA-384 is a truncated SHA-512 often required by compliance profiles.

MD5 and SHA-1 are cryptographically broken: attackers can craft two different inputs with the same hash. They are still fine for detecting accidental corruption or de-duplicating files, and many legacy systems print them, but never rely on them for security decisions such as password storage or signatures.

How text is hashed

Text is encoded as UTF-8 before hashing, which is what command-line tools such as sha256sum and most programming languages do. That means a trailing newline, a Windows line ending or a different Unicode normalisation of an accented letter each produce a different digest. If your result doesn't match another tool, the usual culprit is an invisible trailing newline: echo adds one, printf doesn't.

HMAC versus a plain hash

An HMAC combines the message with a secret key so that only someone who knows the key can produce or verify the value. Services such as GitHub, Stripe and Slack sign webhook payloads with HMAC-SHA256; you can paste the raw request body and the signing secret here to reproduce the signature while debugging. Note that the key is also used as UTF-8 text; if your key is hex or Base64, decode it first.

Frequently asked questions

Is my file uploaded to a server?

No. The file is read into memory in your browser and hashed by the WebCrypto API and a local MD5 implementation. Closing the tab discards it.

Why doesn't my hash match the one on the download page?

Make sure you hashed the same file (not a partially downloaded one) and compare the same algorithm. For text, check for a trailing newline or different line endings, which change the digest completely.

Can I hash a password with this?

You can, but you shouldn't store passwords as plain hashes, even SHA-512. Use a slow, salted algorithm such as bcrypt, scrypt or Argon2 on the server instead.

Why is MD5 marked with a warning?

MD5 and SHA-1 have known collision attacks, so they cannot prove that a file is authentic. They remain useful for spotting accidental corruption and for matching values that older systems print.

What is the maximum file size?

Files up to 200 MB are accepted. The whole file is read into memory, so very large files depend on the memory your browser can spare.

Other tools people use alongside Hash Generator.

You might also like

Something useful from another corner of VoltKit.