How to Compute a SHA-256 Hash
Calculate the SHA-256 hash of text or binary data and understand its properties.
Problem
You need a fixed-size fingerprint of data that changes completely if even one bit of the input changes.
Prerequisites
- Basic understanding of hash functions
- Familiarity with hex output
Steps
-
1. Prepare the input data
Determine whether your input is text or binary. For text, decide on the character encoding (UTF-8 is standard). The hash is computed over the raw bytes, so the encoding affects the result.
InputHello, World!OutputUTF-8 bytes -
2. Compute the SHA-256 digest
Feed the bytes into the SHA-256 algorithm. It processes data in 512-bit blocks and produces a 256-bit (32-byte) digest. The output is typically shown as 64 hex characters. The same input always produces the same output.
InputHello, World!Outputdffd6021bb2d5b0af876906ab0379ce8e0270918d77705e3b3568a943c7d3b0b -
3. Verify the properties
Confirm the output is 64 hex characters. Change one character of the input and re-hash; the output should change completely (avalanche effect). This sensitivity makes SHA-256 suitable for integrity verification.
InputHello, World!!Outputcompletely different hash
Expected result
A 64-character hexadecimal SHA-256 digest that uniquely identifies the input data.
Common errors
- Different hash for the same text on different systems
- The character encoding differs. Ensure both systems use UTF-8. A BOM or trailing newline also changes the hash.
- Hash is not 64 characters
- You may be using a different algorithm (SHA-1 produces 40 chars, MD5 produces 32). Confirm SHA-256 is selected.
Troubleshooting
- If the hash differs from an expected value, check for trailing whitespace or newlines in the input.
- For large files, use a streaming hash to avoid loading the entire file into memory.
Security limits
- SHA-256 is collision-resistant: finding two inputs with the same hash is computationally infeasible. It is not a password hashing function; use bcrypt or scrypt for passwords.
Related tools
Related glossary
Related tasks
Ready to run it?