SHA-384/512 Hash Generator
Compute the SHA-512 or SHA-384 digest of text or raw bytes — hex and Base64, entirely on this device.
SHA-512 prints 128 hex characters, SHA-384 prints 96. Hex and Base64 hash the decoded bytes, not the characters you typed.
Hash a file — File Checksum Verifier
The digest appears here as you type.
Press ? for shortcuts
Do it offline:$ printf '%s' 'hello' | sha512sum
How to use it
- Pick the width: SHA-512 or SHA-384. Switching recomputes and re-checks any expected digest.
- Type or paste the input. There is no submit button — the digest tracks the pane as you edit.
- Set how the input is read: text means UTF-8 bytes as typed; hex and Base64 hash the bytes they decode to.
- Choose the render form — hex, Base64 or Base64url — and copy. UPPERCASE restyles hex only.
Two widths, one page: SHA-512 prints 128 hex characters and SHA-384 prints 96, both from the same 64-bit compression function. Paste text and the digest appears as you type — hex, Base64 or Base64url, computed by your browser's Web Crypto engine on this device. Switch the interpretation when your input is already raw bytes in hex or Base64, and paste a published value into the compare field for a width-aware verdict.
Examples
hello9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043Five UTF-8 bytes in, 64 bytes out. The same digest in Base64 is m3HSJL1i83hdltRq0+o9czGb+8KJDKra4t/3JRlnPKcjI8PZm6XBHXx6zG4UuMXaDEZjR1wuXDre9G9zvN7AQw== — 88 characters instead of 128, which is why signature headers prefer it. SHA-384 of the same input starts 59e1748777448c69 and shares no prefix with the value above.
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3eAn empty pane is not an error: zero bytes have a digest, and every implementation prints this one. cf83e135 where a payload was expected means the previous step wrote nothing.
abccb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7The SHA-384 sample published in FIPS 180-4 itself: 96 hex characters, 48 bytes. Any sound implementation prints this string.
deadbeef1284b2d521535196f22175d5f558104220a6ad7680e78b49fa6f20e57ea7b185d71ec1edb137e70eba528dedb141f5d2f8bb53149d262932b27cf41fed96aa7fRead as hex, these eight characters are four bytes — 0xDE 0xAD 0xBE 0xEF. Hex mode is how a raw nonce reaches a text box at all.
hello
e7c22b994c59d9cf2b48e549b1e24666636045930d3da7c1acb299d1c3b7f931f94aae41edda2c2b207a36e10f8bcb8d45223e54878f5b316e7ce3b6bc019629One trailing byte relocates the entire digest — nothing here resembles example 1. A chip flags the newline when your text ends with one — the usual reason a terminal disagrees with this page.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
SHA-384 is not the first 96 characters of SHA-512
Both widths run the same compression function, but SHA-384 starts from different initial hash values, so the outputs diverge from the very first nibble — compare the two digests of hello in example 1. Truncating a SHA-512 digest yourself yields a third, non-standard value nothing else reproduces.
SHA-512/256 is a separate algorithm, not a slice
FIPS 180-4 also defines SHA-512/256, with its own initial values: for abc it is 53048e2681941ef99b2e29b76b4c7dabe4c2d0c634fc6d46e0e2f13107e7af23, while the first 64 hex characters of SHA-512 of abc are ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a. Web Crypto exposes no SHA-512/256, so this page does not offer it.
The compare field knows which width you selected
A pasted value is measured against the selected width, so a 128-character digest is a length error while SHA-384 is active rather than a silent mismatch, and flipping the width re-runs the verdict on the same paste. Whitespace and uppercase are normalized, with a chip naming what changed.
The longer digest is often the quicker one
SHA-512 works in 64-bit words where SHA-256 works in 32-bit words, so on 64-bit hardware the wider algorithm frequently finishes sooner — part of why SHA-512/256 was specified. Timings depend on your machine, so this page claims no figure for it.
Case and Base64 are display choices, never new digests
The engine holds 64 or 48 raw bytes; UPPERCASE, Base64 and Base64url only re-render them. Base64url swaps +/ for -_ and drops the padding, as a URL or JOSE header needs; standard Base64 keeps its = so any decoder accepts the copy.
Files and keyed digests go to other tools
Text over the 1 MB paste limit is refused outright rather than quietly cut short, and the refusal points at the File Checksum Verifier. For a keyed digest, use the HMAC Generator instead.
Common errors
Odd number of hex digits — byte 2 is incomplete- Hex is read in pairs, so an odd count leaves the last byte half-specified and there is nothing honest to hash. Add the missing digit, or switch the interpretation back to text.
This doesn't look like a SHA-384 digest (unexpected length 128) — a SHA-384 digest is exactly 96 hex characters.- Your paste is the right shape for SHA-512 while the page is set to SHA-384. Flip the width and it is re-checked at 128 characters — the verdict follows the selector, not the clipboard.
Expected digest: `g` at position 128 is not a hex digit- Only 0–9 and a–f appear in a digest, and the position counts characters exactly as pasted. A stray letter this far in usually means the copy clipped the end of the line.
Invalid Base64: character '.' at position 8- Dots separate the segments of a compact token; they are never payload bytes, so the decoder stops at the first one. Hash one segment alone, or read the token as text to fingerprint it whole.
FAQ
Should I choose SHA-512 or SHA-384?
Match whatever you verify against — a published checksum or a certificate profile decides for you. Otherwise: SHA-384 costs the same and its truncated output resists length-extension tricks a full-width digest does not, while SHA-512 is the widest standard output.
How do I reproduce these digests in a terminal?
GNU coreutils ships sha512sum and sha384sum; macOS spells them shasum -a 512 and shasum -a 384. Pipe with printf '%s' rather than echo — echo appends the newline byte that turns example 1 into example 5.
Why is SHA-512/256 missing from the width selector?
Because Web Crypto does not implement it, and cutting a SHA-512 digest in half would print a value no standard tool agrees with — the two strings in the edge note above are the proof. Reach for openssl dgst -sha512-256 when you need that variant.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Re-hash the pane now.
- ⌘/Ctrl + S
- Download the digest as .txt, named for the selected width.
- ⌘/Ctrl + C
- Copy the digest as shown on screen, when nothing is selected.
- ⌘/Ctrl + Shift + C
- Copy that digest even while a selection exists.
- t
- Cycle the theme.
- ? or ⌘/Ctrl + /
- Show the shortcut help overlay.
- Esc
- Close the topmost overlay.