Hash Generator

Compute SHA-1, SHA-256, SHA-384, SHA-512 and MD5 message digests in your browser.

  • Runs locally in your browser
  • No upload required

Try it

Algorithm
SHA256
Digest (hex)
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Digest size
256 bits
Input size
3 UTF-8 byte(s)
Computed with
Bundled engine

Supported formats

Input
text, select
Output
text

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

SHA256 digest of 3 UTF-8 byte(s): ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

How it works

  • Encoded the input as 3 UTF-8 byte(s).
  • Applied the SHA256 compression function defined by the cited standard.
  • Formatted the 256-bit digest as 64 lower-case hex characters.
textSelect to copy
SHA256(message) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
  • Computed with the bundled implementation, which matches the published known-answer vectors.

Methodology

  1. Encode the input text as UTF-8 bytes, so the digest is locale-independent and matches the standard test vectors.
  2. Apply the FIPS 180-4 SHA family or the RFC 1321 MD5 compression function with the algorithm's initial state, padding and 32/64-bit message schedule.
  3. Format the digest as lower-case hexadecimal; the page reports the bit length and the UTF-8 byte length of the input.
  4. When the browser exposes the Web Crypto API, the SHA-family digest is computed with crypto.subtle and cross-checked in tests against the bundled engine.

Usage

  1. Type or paste the text to hash.
  2. Choose SHA-1, SHA-256, SHA-384, SHA-512 or MD5.
  3. Read the hexadecimal digest; use Copy result to reuse it.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

SHA-256 of "abc"

jsonSelect to copy
{
  "text": "abc",
  "algorithm": "sha256"
}

SHA-1 of "abc"

jsonSelect to copy
{
  "text": "abc",
  "algorithm": "sha1"
}

MD5 of "abc"

jsonSelect to copy
{
  "text": "abc",
  "algorithm": "md5"
}

SHA-512 of the empty string

jsonSelect to copy
{
  "text": "",
  "algorithm": "sha512"
}

Limitations

What a digest does and does not prove

A cryptographic digest maps any input to a fixed-size value. In practice it is used to detect content changes (compare the digest before and after) and as a building block inside HMAC, signatures and key-derivation functions.

It does not prove who sent a message, and a raw digest cannot withstand a determined attacker who can also modify the expected value. For authenticity, use a keyed construction such as HMAC over a shared secret, or a signature over a public key.

Where Web Crypto is used

Web Crypto provides SHA-1, SHA-256, SHA-384 and SHA-512 through crypto.subtle.digest, and this tool uses that implementation when the browser exposes it. It provides no MD5, so MD5 always uses the bundled implementation. Both paths are checked against the same known-answer vectors in the test suite.

Frequently asked questions

Which hash should I use?
Use SHA-256 or SHA-512 for new work. MD5 and SHA-1 are provided only for compatibility with legacy systems and are no longer collision-resistant.
Is my input sent anywhere?
No. The text is hashed in your browser; the page has no network processing path and does not collect tool input.
Why does the digest look different from a salted password hash?
A raw digest has no salt or work factor. Password storage deliberately adds both to make bulk guessing expensive; this tool does not do that.

Sources

  1. FIPS 180-4: Secure Hash Standard (SHS) — NIST
  2. RFC 1321: The MD5 Message-Digest Algorithm — IETF
  3. MDN Web Docs — SubtleCrypto.digest() — MDN