Is the SHA-384 generator free?
Yes. It is completely free to use, with no signup, no account, and no paywall.
Do I need to install anything?
No. It runs in any modern browser on desktop or mobile, with nothing to download and nothing to configure.
Does it stay local?
Yes. Hashing runs entirely in your browser, so the text you hash never leaves your device.
Why choose SHA-384 over SHA-256?
Two reasons. The first is that SHA-384 resists length-extension attacks by construction, because it is a truncated SHA-512 and the truncation hides part of the internal state. SHA-256 does not have that property, which is why constructions like hash(secret + message) are unsafe with it. The second is performance: on 64-bit CPUs the SHA-512 family, which SHA-384 belongs to, generally runs faster than SHA-256 because it operates on 64-bit words. On 32-bit and embedded hardware the picture reverses.
Is SHA-384 only SHA-512 cut in half?
Almost, but not quite, and the difference matters. SHA-384 runs the same compression function as SHA-512 but starts from a different set of initial hash values, then truncates the result to 384 bits. Because the initial values differ, the SHA-384 digest of a message is not a prefix of its SHA-512 digest. If it were a simple truncation, the two would be trivially related, and the length-extension resistance would not hold.
What is the length-extension attack, and why does it not affect SHA-384?
SHA-256 and SHA-512 are Merkle-Damgard hashes, which means the digest is the full internal state at the end of the message. An attacker who knows hash(secret + message) and the length of the secret can resume from that state and compute hash(secret + message + extra) without ever knowing the secret. SHA-384 truncates its output, so the published digest is only part of the state and the attacker cannot resume from it. The general fix, regardless of which hash you use, is HMAC.
Can I use this for a subresource integrity attribute?
Not by copying the output directly. The integrity attribute on a script or link tag expects the algorithm prefix followed by the base64 encoding of the raw digest bytes, whereas this tool prints hexadecimal. You would need to convert the hex to bytes and then to base64. It is also worth remembering that integrity hashes are computed over the file's bytes, and this tool hashes text you type, so it is not the right tool for that job in the first place.
Is anything sent to a server?
No. The digest is computed by your browser's native Web Crypto implementation, entirely on your device, and the input is never transmitted or stored.