---
title: "SHA-256 hash generator, with SHA-1 and SHA-512"
description: "Free SHA-256 hash generator. Hash any text with SHA-1, SHA-256 or SHA-512 and an optional salt, right in your browser, and copy the hex digest."
canonical: "https://www.meadowdesk.com/tools/hash-generator"
last_modified: "2026-10-27"
---

# Hash generator

Source: https://www.meadowdesk.com/tools/hash-generator

Free SHA-256 hash generator. Hash any text with SHA-1, SHA-256 or SHA-512 and an optional salt, right in your browser, and copy the hex digest.

Hash any text with SHA-256, SHA-1 or SHA-512, add a salt if you need one, and copy the digest. It all runs in your browser.

## How to use it

1. Pick the algorithm. SHA-256 is the usual choice; SHA-1 is only for checking older systems.
2. Add a salt if you need one. It is put in front of the text before hashing.
3. Type or paste the text to hash. Every character counts, spaces and line breaks included.
4. Copy the hex digest and compare it with the one you were given.

## Hash generator FAQ

**What is a hash used for?**
Checking that something has not changed. Publish the SHA-256 of a file and anyone can hash their download and compare the two. Hashes also sit underneath digital signatures, Git commits and file deduplication.

**Can I store passwords as SHA-256 hashes?**
Not on its own. SHA-256 is built to be fast, so an attacker with a stolen list can test billions of guesses a second. Store passwords with a slow, salted password hash like bcrypt or Argon2, which your framework already has, and make them long with the [password generator](https://www.meadowdesk.com/tools/password-generator).

**What is a salt?**
Extra text added to the input before hashing, so two people with the same password don’t get the same digest and a table of precomputed hashes is useless. Each password gets its own random salt, stored next to the hash. It doesn’t need to be secret.

**Why does my digest not match?**
Something in the input differs: a trailing space, a line break, a capital letter or a different text encoding. JSON is a common trap, because the same data with different spacing hashes differently. Minify both copies with the [JSON formatter](https://www.meadowdesk.com/tools/json-formatter) first, then compare.

**How do webhooks use hashes?**
Most services sign each webhook with an HMAC: a hash of the body mixed with a secret key you share with them. You compute the same HMAC and compare. Many include a [Unix timestamp](https://www.meadowdesk.com/tools/unix-timestamp-converter) in the signed text, so an old request replayed later is refused. This tool makes plain hashes, not HMACs.
