SHA-1 Hash Generator

Online SHA-1 tool — hash text or files, generate HMAC-SHA-1, and verify checksums.

Free online SHA-1 generator — paste or type any text to compute its SHA-1 hash instantly, drop a file to hash its full contents, or switch to HMAC-SHA-1 mode with a secret key. Uses the browser's native crypto.subtle API — no data is sent to a server. No signup required.

Mode

HMAC secret key

The key is combined with the message via HMAC (RFC 2104). Leave empty to compute plain SHA-1.

Output case

About SHA-1

Output
160 bits
Hex length
40 chars
Family
SHA-1
Rounds
80
Status
Broken (collisions)

Verify hash

File Input

Drop a file here

or click to browse — any file type, any size

Click or drop another file to replace

SHA-1 Hash HMAC
Computing SHA-1…
SHA-1 hash will appear here…
Drop a file above to compute its hash…
hex chars · 160 bits · 20 bytes

Frequently asked questions

Not for security-sensitive purposes. In 2017, Google and CWI Amsterdam demonstrated a practical collision attack ("SHAttered") producing two different files with the same SHA-1 hash. Every major browser and certificate authority has since deprecated SHA-1 for TLS certificates and digital signatures. SHA-1 remains fine for non-adversarial uses — checksums to catch accidental corruption, or as an internal identifier (like Git's object hashing, which is migrating to SHA-256) — where nobody is deliberately trying to forge a collision.
For any security-relevant purpose — digital signatures, certificates, password-adjacent hashing — use SHA-256 or SHA-512 (SHA-2 family) or SHA-3. For password storage specifically, use Argon2id or bcrypt rather than any general-purpose hash function.
Always exactly 160 bits — 20 bytes, or 40 hexadecimal characters — regardless of input size.
HMAC-SHA-1 combines a secret key with SHA-1 to produce a message authentication code proving both integrity and authenticity. Despite SHA-1's collision weakness, HMAC-SHA-1 remains considered secure as a MAC (the attacks that broke plain SHA-1 don't extend to HMAC), which is why it still appears in some legacy OAuth 1.0a and TOTP implementations — though newer systems generally prefer HMAC-SHA-256.
No. Hashing runs locally in your browser via the native crypto.subtle API — nothing you enter or upload is ever sent anywhere.