SHA-1 hash generator
Paste any text and instantly get its SHA-1 digest — a 160-bit value shown as 40 hexadecimal characters. The hash updates as you type, making this handy for checksums, Git object IDs, and legacy integrations that still expect SHA-1.
How it works
The tool encodes your text as UTF-8 bytes and passes them to the browser’s
built-in Web Crypto API (crypto.subtle.digest("SHA-1", …)). SHA-1 is a
one-way hash: it always produces the same 160-bit output for the same input, the
output reveals nothing about the input, and even a one-character change produces
a completely different digest. Because the hashing is done by the browser, your
text never leaves your device.
Example digests
| Input | SHA-1 (40 hex characters) |
|---|---|
| (empty) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| abc | a9993e364706816aba3e25717850c26c9cd0d89d |
| hello | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d |
Notice that changing a single character from abc to abd produces an entirely different 40-character string — this is the avalanche effect, a fundamental property of cryptographic hash functions.
When SHA-1 is still appropriate
SHA-1 is broken for collision resistance, meaning it is theoretically possible (and has been demonstrated in research) to construct two different inputs with the same SHA-1 hash. This matters enormously for digital signatures, certificates, and anything relying on the hash to guarantee uniqueness in a security context. Do not use SHA-1 for:
- Digital signatures or code-signing certificates (use SHA-256 or SHA-3)
- Password storage (use bcrypt, scrypt, or Argon2)
- TLS certificate fingerprints in trust decisions
SHA-1 remains appropriate for:
- Git object IDs — Git names every commit, tree, blob, and tag by its SHA-1 hash. The risk here is accidental collision, not adversarial attack. Git’s collision detection protects against the known SHAttered attack, and a migration to SHA-256 is in progress but not yet default.
- Legacy API integrations — many older APIs and message-queue signatures (for example, some webhook verification schemes) still require HMAC-SHA1. You need SHA-1 to compute what the remote end expects.
- Non-security checksums — verifying a downloaded file has not been corrupted in transit is a data-integrity check, not a security check; SHA-1 is fast and sufficient for this.
- Cache keys and fingerprinting — hashing a build artifact, a template string, or a configuration blob to detect changes is a common use case that does not involve adversaries.
If you need a security-appropriate alternative, use the SHA-256 generator linked in the related tools below.