Skip to content
uencoder
TUTORIAL

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. 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.

    Input
    Hello, World!
    Output
    UTF-8 bytes
  2. 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.

    Input
    Hello, World!
    Output
    dffd6021bb2d5b0af876906ab0379ce8e0270918d77705e3b3568a943c7d3b0b
  3. 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.

    Input
    Hello, World!!
    Output
    completely 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?

References