JSON Formatter
Format, validate, minify, or sort JSON data with configurable indentation. Instantly check for syntax errors, view node count and nesting depth — free, no sign-up required.
Generate MD5, SHA-1, SHA-224, SHA-256, SHA-384 & SHA-512 hashes from any text. Supports hex, Base64, and Base64URL output, plus HMAC signing. Free and instant.
Input Text
Output Encoding
HMAC Mode
Add a secret key to generate a keyed-hash message authentication code
Results
Enter text and click
Generate Hashes
Hash Generator is part of the Developer collection. If you want a broader view of similar workflows, open the Developer category page or browse all QuickTools categories.
Common next steps after this tool include JSON Formatter, QR Code Generator and Base64 Encoder / Decoder.
A cryptographic hash function takes any input — a single character, a password, or an entire document — and produces a fixed-length fingerprint called a digest. The same input always produces the same digest, but even a one-character change produces a completely different output. This property is called the avalanche effect.
Hash functions are one-way by design: you cannot reverse a hash back to the original input (without brute-force). That makes them essential in cybersecurity, data integrity verification, digital signatures, password storage, and software checksums. This tool computes all six major hash algorithms simultaneously — MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 — and supports three output formats: Hex, Base64, and Base64URL.
The optional HMAC mode (Hash-based Message Authentication Code) adds a secret key to the hash computation, producing a keyed digest that proves both the data integrity and the authenticity of whoever generated it — essential for API request signing, webhook verification, and JWT implementations.
| Algorithm | Output Size | Security Status | Common Uses |
|---|---|---|---|
| MD5 | 128-bit / 32 hex | Broken | Non-security checksums, legacy file verification |
| SHA-1 | 160-bit / 40 hex | Deprecated | Legacy TLS, old Git commits, compatibility testing |
| SHA-224 | 224-bit / 56 hex | Secure | Truncated SHA-256 for constrained environments |
| SHA-256 | 256-bit / 64 hex | Recommended | TLS certificates, JWT, file integrity, Bitcoin |
| SHA-384 | 384-bit / 96 hex | Secure | High-security certificates, banking, government |
| SHA-512 | 512-bit / 128 hex | Secure | Maximum strength hashing, password KDFs, archival |
File integrity check
SHA-256sha256sum myfile.zip # a591a6d40bf420404...
Git commit SHA
SHA-1git log --format="%H" # 4b825dc642cb6eb9a...
API webhook verification
HMACHMAC-SHA256(secret, payload) # Compare to X-Hub-Signature-256
Password hashing input
SHA-256bcrypt(sha256(password), salt) # Pre-hash before bcrypt
JWT signature
HMACHMAC-SHA256(base64Header + "." + base64Payload, secret)
Software download checksum
MD5MD5: d41d8cd98f00b204e9800998ecf8427e # Compare with published hash
All SHA-2 family algorithms (SHA-224, 256, 384, 512) follow the same high-level structure — the Merkle–Damgård construction:
HMAC wraps the hash function: HMAC(K, m) = H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)). The key is XOR’d with inner and outer padding, ensuring the MAC is bound to the secret key even if the hash itself is public.
Which hash algorithm should I use?
For modern applications, use SHA-256 (general) or SHA-512 (high-security). SHA-256 is the NIST-recommended standard used in TLS certificates, Bitcoin, and most authentication systems. Never use MD5 or SHA-1 for any new security-critical purpose — both have known collision attacks. For password storage, do not use raw SHA-256 — use a proper KDF like bcrypt, Argon2, or scrypt instead.
What is HMAC and when should I use it?
HMAC (Hash-based Message Authentication Code) is a keyed hash — it combines a secret key with the message before hashing. Use HMAC when you need to prove both that data has not been tampered with AND that it came from someone who knows the secret key. Common use cases: webhook signature verification (GitHub, Stripe), JWT signing (HS256 = HMAC-SHA256), API authentication headers.
Can I reverse a SHA-256 hash back to the original text?
No. SHA-256 is a one-way function — it is computationally infeasible to derive the original input from a hash (preimage resistance). For short or common inputs (dictionary words, simple passwords), attackers can use rainbow tables or brute-force lookups. This is why passwords must be hashed with a slow KDF (bcrypt, Argon2) and salt rather than raw SHA-256.
What is the difference between Hex and Base64 output?
Both represent the same hash bits in different textual formats. Hex uses 0–9 and a–f — a SHA-256 hash is always 64 hex characters. Base64 uses A–Z, a–z, 0–9, +, / and = padding — the same SHA-256 hash is 44 Base64 characters (more compact). Base64URL replaces + with - and / with _ and omits = padding, making it safe in URLs and JSON Web Tokens.
Why do MD5 and SHA-1 still appear in software?
Legacy compatibility. Millions of existing systems, protocols, and file formats were built assuming MD5 or SHA-1. Git uses SHA-1 for its internal object model (migrating to SHA-256 gradually). Many checksum tools use MD5 purely for accidental-error detection (not security). For new systems, always choose SHA-256 or higher.
Is it safe to hash passwords with SHA-256?
No. SHA-256 is designed to be fast, which is exactly what you don’t want for password storage. An attacker with a GPU can compute billions of SHA-256 hashes per second. Always use a dedicated password hashing function: bcrypt (2^cost iterations), Argon2id (OWASP recommended), or scrypt. These functions are intentionally slow and can be tuned as hardware speeds up.
Format, validate, minify, or sort JSON data with configurable indentation. Instantly check for syntax errors, view node count and nesting depth — free, no sign-up required.
Generate QR codes for URLs, text, Wi-Fi credentials, vCards, and more. Customise foreground and background colour, error correction level, margin, and download as SVG or PNG — free and instant.
Encode any text to Base64 (standard, URL-safe, or MIME) or decode any Base64 string back to plain text. Instant, free, no sign-up required.
Generate UUID v1, v4, v5, or Nil identifiers in bulk. Validate any UUID and detect its version. Copy instantly — no signup required.
Convert short MP4, WebM, MOV, AVI, MKV, and other video clips into GIFs online with trim controls, frame-rate options, and private in-browser processing.
Create animated GIFs from a sequence of images online with per-frame delay, output width, loop count, and private in-browser processing — no upload required.
Convert an animated GIF into a compact MP4 or WebM video file online with output width, duration, and FPS controls — processed entirely in your browser, no upload required.
Convert an animated GIF into a compact WebM video file online using VP9 or VP8 — output width, duration, and FPS controls with private in-browser processing, no upload required.