← Back to home

Hash Generator — MD5, SHA-1, SHA-256, SHA-384, SHA-512, HMAC

Compute 5 hash algorithms at once (MD5, SHA-1, SHA-256, SHA-384, SHA-512) + HMAC-SHA256/512 with secret key + file hash (SHA-256). Web Crypto API native.

5 algosHMACFileWeb Crypto
MD5
SHA-1
SHA-256
SHA-384
SHA-512
HMAC (keyed hash)
File SHA-256

Why use this tool

5 hashes in parallel

One input → 5 algos computed simultaneously (Promise.all). Faster than sequential tools.

🔐
Web Crypto native

SHA-* uses crypto.subtle.digest — native browser implementation, FIPS-compliant in Chrome/Edge.

📁
File hash

Drag file → SHA-256 byte-level (verify download integrity). Handles 100MB+ files.

How to use

  1. 1Type text in the textarea — 5 hashes appear in realtime.
  2. 2(Optional) Enter HMAC secret → HMAC-SHA256 + HMAC-SHA512 shown.
  3. 3(Optional) Upload a file → SHA-256 file hash (verify downloads).

Hash algorithms

MD5 (128-bit, 1991): deprecated for security (collision found 2004) but still used for non-security checksums. The tool uses a JS lib (Web Crypto doesn't support MD5).

SHA-1 (160-bit, 1995): collision found 2017 — deprecated for security. Still used by git, legacy systems.

SHA-2 family (256/384/512): current standard. SHA-256 is most popular (Bitcoin, TLS, password hashing with salt).

HMAC: keyed hash — combines secret + message, used for authentication (API signatures, JWT HS256).

  • MD5 + SHA-1/256/384/512 simultaneously
  • HMAC-SHA256 + HMAC-SHA512
  • File hash via drag-drop
  • Native Web Crypto API (SHA-*)
  • Realtime — hashes per keystroke
  • Hex output (lowercase)
  • Copy per algo

FAQ

What is MD5 used for?

Only checksums (file integrity, cache keys). NOT for passwords (rainbow table attacks) or digital signatures.

SHA-256 vs SHA-3?

Same security level (256-bit). SHA-3 has a different internal structure (Keccak), theoretically more secure. The tool doesn't yet support SHA-3 (Web Crypto doesn't have it).

Is file hash slow?

Web Crypto streams chunks; a 100MB file takes ~5-10s. The browser main thread isn't blocked thanks to async digest.