Hash Generator
MD5, SHA and HMAC of any text
Compute MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes, or HMACs with a secret key, as you type.
- MD5
- SHA-256
- SHA-512
- HMAC
How to use Hash Generator
- Choose an Input source: Text to type or paste, or File to pick or drop any file.
- Read the MD5, SHA-1, SHA-256, SHA-384 and SHA-512 values under Hash results. They update shortly after you stop typing.
- Switch the Output format between lowercase
hex, uppercaseHEXandBase64. - For a keyed hash, turn on HMAC mode (keyed hash) and enter the HMAC key.
- Use the copy button next to a value to copy just that one.
How it works
Text is encoded as UTF-8 and hashed as those bytes; a file is read into memory and hashed exactly as stored. SHA-1, SHA-256, SHA-384 and SHA-512 come from the browser’s Web Crypto API (crypto.subtle.digest). Web Crypto has no MD5, so MD5 is computed with a small built-in JavaScript implementation.
In HMAC mode, the key is encoded as UTF-8 and imported as a raw HMAC key, and the HMACs are computed with crypto.subtle.sign for SHA-1, SHA-256, SHA-384 and SHA-512 (RFC 2104). All algorithms run together on each change, so you always see every result for the same input.
Limits
- Files up to 200 MB; the whole file is held in memory while hashing. Text files dropped on the text box are limited to 10 MB.
- HMAC-MD5 is not supported, because Web Crypto doesn’t offer it.
- The HMAC key is always taken as UTF-8 text; hex or Base64 keys are not decoded first. An empty key isn’t accepted.
- Text in the box uses
\nline endings, so text copied from a Windows file may hash differently from the file itself. Use File to hash exact bytes. - MD5 and SHA-1 are broken for security purposes: fine for checksums and compatibility, not for signatures or passwords.
Privacy
Text, files and HMAC keys are processed only in your browser and never uploaded or stored. Text received through Send to… from another tool is passed via this tab’s session storage and removed as soon as this tool reads it.
Frequently asked questions
Why doesn’t my hash match the one from the command line?
Usually the input differs by invisible bytes: a trailing newline (echo adds one unless you use echo -n), Windows line endings, or a different text encoding. Hash the file itself with File to compare exact bytes.
Can I use this to hash passwords for storage?
No. Plain MD5 and SHA hashes are far too fast for password storage. Use a dedicated password hashing scheme such as Argon2, scrypt or bcrypt on your server.
What is the difference between a hash and an HMAC?
A hash depends only on the data, so anyone can compute it. An HMAC also mixes in a secret key, so only someone with the key can produce or check it. It is used to sign webhooks and API requests.
Why is there no HMAC-MD5?
The browser’s Web Crypto API, which computes the HMACs here, doesn’t support MD5.
More tools
- Clean Image: Inspect and remove hidden image metadata
- JWT Decoder: Decode and verify JSON Web Tokens
- Diff Checker: Compare two texts line by line
- JS Runner: Run JavaScript and TypeScript in your browser
- JSON Formatter: Format, validate and minify JSON
- Encode / Decode: Base64, URL, HTML entity and hex
- UUID Generator: Generate UUID v4 and v7 in bulk
- Timestamp Converter: Unix time ↔ human dates
- Regex Tester: Test regular expressions live
- URL Parser: Break a URL into its parts
- HTTP Status Codes: Look up any HTTP status code
- MIME Type Lookup: File extension ↔ MIME type
- Password Generator: Strong random passwords and passphrases
- Random String Generator: Random tokens, IDs and keys
- Slug Generator: Turn titles into URL slugs
- Case Converter: camelCase, snake_case, Title Case and more
- Word Counter: Count words, characters and reading time
- JSON to TypeScript: Generate TypeScript types from JSON
- JSON Diff: Compare two JSON documents structurally
- JSON to SQL: Turn JSON arrays into SQL inserts
- YAML ↔ JSON: Convert between YAML and JSON
- XML ↔ JSON: Convert between XML and JSON
- CSV ↔ JSON: Convert between CSV and JSON
- CSV Viewer: View, sort and filter CSV files
- SQL Formatter: Format and beautify SQL queries
- cURL ↔ Fetch: Convert cURL commands to fetch and back
- Markdown Editor: Write Markdown with a live preview
- Text Cleaner: Remove duplicate lines, empty lines and extra spaces
- Find & Replace: Find and replace in any text
- Cron Expression Builder: Build and explain cron schedules
- User-Agent Parser: Identify browser, OS and device from a user agent
- HTTP Headers Inspector: Paste response headers and get them explained
- JWT Generator: Create and sign test JSON Web Tokens
- Certificate Inspector: Decode PEM certificates and keys
- Meta Tag Inspector: Check a page's SEO and social tags
- UTM Builder: Build campaign URLs with UTM parameters
- URL Cleaner: Strip tracking parameters from links
- Robots.txt Generator: Create and test a robots.txt file
- Sitemap Generator: Create an XML sitemap from a list of URLs
- Image Compressor: Shrink JPEG, WebP and AVIF images in your browser
- Image Resizer: Resize images by pixels, percentage or to fit a box
- Image Converter: Convert between PNG, JPEG, WebP and AVIF
- Image to Base64: Encode images as Base64 data URIs and decode them back
- SVG Optimizer: Minify and sanitize SVG files
- Favicon Generator: Make favicon.ico, Apple and Android icons from an image or emoji
- Color Converter: HEX, RGB, HSL, OKLCH and contrast checks
- Number Base Converter: Binary, octal, decimal, hex and float bits
- IP / CIDR Calculator: Subnets, masks and IP ranges for IPv4 and IPv6
- JSONPath Query: Query JSON with JSONPath expressions
- JSON Schema Validator: Validate JSON against a schema, or generate one
- Semver Checker: Check versions against semver ranges
- chmod Calculator: Unix permissions: rwx ↔ octal
- .env Diff: Compare and validate .env files
- TOTP Generator: Generate and verify 2FA codes
- String Escaper: Escape and unescape strings for any language
- Unicode Inspector: See every character, code point and hidden symbol
- Mock Data Generator: Generate realistic fake data
- QR Code Generator: Create QR codes for links, Wi-Fi and contacts
- Lorem Ipsum Generator: Placeholder text in paragraphs, sentences or words
- Date Calculator: Date differences, business days and durations
- Unit Converter: Convert bytes, lengths, weights, temperatures and more
- Query CSV with SQL: Run SQL queries on CSV files
- PDF Merge & Split: Merge, split, reorder and rotate PDFs
- PDF Metadata Cleaner: See and remove hidden PDF metadata
- Office Metadata Cleaner: Remove author and revision data from Word, Excel and PowerPoint
- Images to PDF: Combine images into one PDF
- Image Editor: Crop, rotate, resize and adjust images
- Encrypt / Decrypt Text: Encrypt text with a passphrase (AES-GCM)
- SSH Key Generator: Generate Ed25519 and RSA SSH keys locally
- Email Header Analyzer: Trace an email's path and check SPF, DKIM and DMARC
- JSON to Code: Generate Go, Python, Rust, Java, C# and Kotlin models from JSON
- docker run ↔ Compose: Convert docker run commands to docker-compose and back
- Color Palette Extractor: Pull the dominant colours out of any image
- Password Strength Checker: How long would your password take to crack?
- SPF / DKIM / DMARC Checker: Validate and explain email DNS records
- Kubernetes YAML Checker: Validate and explain Kubernetes manifests
- .gitignore Generator: Build a .gitignore from presets
- CSP Builder: Build and check a Content-Security-Policy
- JSON-LD Generator: Create schema.org structured data
- Open Graph Image Generator: Make 1200×630 social preview images
- CSS Generator: Gradients, shadows, clamp() and more
- Time Zone Meeting Planner: Find meeting times across time zones