Security

Hash Generator

Generate SHA-256 hashes and checksums for text and files, with SHA-1, SHA-384 and SHA-512 support.

The text is hashed as its UTF-8 bytes with no normalization, so "é" and "e\u0301" produce different digests.

Text and files are hashed locally in your browser and are not uploaded to TechFixGen. Hashing is not encryption: a hash is one-way, so it cannot be decrypted back to the original input.

Spaces around the value are ignored and the comparison ignores uppercase/lowercase. A matching checksum shows the inputs produced the same digest — it does not verify a file's authenticity.

Your data stays private

This tool runs directly in your browser. The content you enter is processed locally and is not sent to TechFixGen servers. No account or signup is required.

How hashing works

What a hash is

A hash is a fixed-length fingerprint of a piece of data. The SHA family reads any input — one character or one gigabyte, text or binary — and produces a fixed-length value: SHA-1 gives 40 hexadecimal characters, SHA-256 gives 64 hexadecimal characters, SHA-384 gives 96 hexadecimal characters, and SHA-512 gives 128 hexadecimal characters. The same input always produces the same digest, and changing even one character typically produces a very different digest. Hashes have finite outputs, so different inputs can share a digest: this is called a collision.

Hashing is not encryption. Encryption is two-way: an encrypted value can be decrypted back to the original. Hashing is one-way: there is no decryption operation that recovers the original input. The only way to "find" the input from a digest is guessing candidates and hashing them to compare, which is why weak, common inputs are easy to guess and why passwords should never be hashed with a plain fast hash.

Which algorithm to choose

SHA-1 is retained for compatibility and checksum workflows but is no longer considered collision-resistant. Whenever you can choose, use SHA-256: it is the default for a reason, it is collision-resistant for current practical purposes, and its 64-character digest is the format most tools, package managers and download pages expect.

SHA-384 and SHA-512 are the same family at larger digest sizes. They are the right choice when a standard or a partner explicitly asks for them — for example an API that publishes SHA-512 checksums. They produce longer digests (96 and 128 hex characters). Performance depends on the platform; choose the algorithm required by your workflow.

  • SHA-1 (Legacy) — 40 hex chars, kept for compatibility only.
  • SHA-256 — 64 hex chars, the recommended default.
  • SHA-384 — 96 hex chars, for standards that require it.
  • SHA-512 — 128 hex chars, for standards that require it.

How text is hashed

Text is hashed as UTF-8 bytes using the browser's standard TextEncoder. That means the same sequence of Unicode code points encodes to the same bytes on every platform.

No normalization is applied. Two strings that look identical to a human can encode to different bytes — a precomposed "é" (one code point) and a decomposed "e" followed by a combining accent (two code points) have different byte sequences and therefore different hashes. Normalizing those differences is a decision the caller should make explicitly; this tool hashes exactly the bytes your text encodes to, and says so rather than guessing.

How files are hashed

Files are hashed from their raw bytes, not from any text decoding of their contents. That is important for integrity checks: a checksum you compute on a downloaded file must match the one the publisher computed from the exact same bytes, and the raw bytes are the only fair comparison.

The file is read into the browser's memory and hashed in one pass. Two files with identical contents always produce the same digest regardless of name. Different contents will usually produce different digests, but collisions are possible.

Checksums and integrity

A checksum (or message digest) is just a hash used as a consistency check. A matching digest provides strong practical evidence that the bytes are the same when the expected digest is trusted and the algorithm remains appropriate for the use case. It is not mathematical proof: collisions are theoretically possible.

A matching checksum does not, by itself, prove authenticity. It shows that the digests match, not who produced the file. If the checksum itself came from the same attacker who tampered with the file, or if it was fetched over an unsecured channel, the match proves nothing about who produced the file. Treat checksums as an integrity check, and verify provenance through a trusted distribution channel.

  • Same bytes in, same digest out — catches corrupted downloads.
  • A digest does not verify a file's authenticity or its source on its own.
  • Use the Compare checksum box against the value published with the file.

Hashing vs password hashing

This tool computes plain hashes with the SHA family. Those are not suitable for storing passwords or deriving keys from secrets. A fast hash like SHA-256 is easy to brute-force — an attacker can try trillions of guesses, and common passwords or dictionary phrases fall almost instantly.

Password storage needs a dedicated password-hashing or key-stretching function with a per-password random salt. Argon2 and scrypt are designed to be memory-hard. PBKDF2 is deliberately computationally expensive key stretching, not memory-hard; bcrypt also uses a configurable computational cost. Use a dedicated password-hash library for that, not this tool. This tool is for verification, fingerprints and integrity checks — for example confirming that a value matches the SHA-256 checksum an API published.

The avalanche effect

Cryptographic hashes distribute changes across the whole digest. Flipping one character — "hÇllo" instead of "héllo" — changes roughly half the output bits, so even nearby inputs produce digests that look nothing alike. With an appropriate collision-resistant algorithm, this makes hashes useful for detecting changes in practice; it is not a guarantee that collisions cannot occur.

Edge cases

An empty input is still a valid input, and its hash is not empty: SHA-256 of the empty string is e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. A fixed-length digest always produces the same number of characters regardless of input length.

Whitespace matters. A trailing space or newline changes the bytes, so "password" and "password " hash differently. If you are comparing against a value from a log file or API, make sure both sides agree on the exact bytes.

Frequently asked questions

What is a hash?

A hash is a fixed-length fingerprint of a piece of data. The same input always produces the same digest, and even a one-character change typically produces a very different one. Because outputs are finite, collisions are possible: different inputs can produce the same digest. SHA-1 produces 40 hexadecimal characters, SHA-256 produces 64, SHA-384 produces 96, and SHA-512 produces 128.

Is hashing the same as encryption?

No. Encryption is two-way — an encrypted value can be decrypted back to the original. Hashing is one-way: a digest cannot be reversed into its input, and one-way only. This tool computes hashes, so nothing it produces can ever be decrypted back to the text or file you started with.

Which hash algorithm should I use?

SHA-256 is the ready default: widely supported, fast, and the format most download pages and developer tools publish. SHA-384 and SHA-512 exist for standards that explicitly require them, and SHA-1 is kept only for compatibility — it is no longer considered collision-resistant and should not be used for new work.

Why does TechFixGen still offer SHA-1?

SHA-1 is retained for compatibility, such as verifying a checksum that a legacy system or historical dataset published with SHA-1. It is labelled as legacy because SHA-1 is no longer considered collision-resistant, and the tool shows that warning whenever SHA-1 is selected.

Are my text and files uploaded to TechFixGen?

No. Text and files are hashed locally in your browser and are not uploaded to TechFixGen. Hashing uses your browser's native Web Crypto and can work without any network connection; the digest you see is computed entirely on your device.

Can a hash be reversed?

No, not by design. A digest is a one-way fingerprint with no way back to its input. Guessing candidates and hashing them to compare is the only strategy, which is why fast hashes like SHA-256 are never appropriate for storing passwords and why common inputs should never be treated as secret just because they were hashed.

What is the difference between a hash and a checksum?

A checksum is simply a hash used as a consistency check. Comparing a downloaded file with a trusted SHA-256 checksum provides strong practical evidence that its bytes match, helping detect corruption. Collisions are theoretically possible, so a match is not mathematical proof. The underlying digest is the same thing either way.

Does a matching checksum prove the file is authentic?

No. A match provides strong practical evidence that the bytes are the same if the expected digest is trusted and the algorithm remains appropriate, but it does not verify a file's authenticity. Hash collisions are possible. If the checksum itself came from an untrusted source or traveled over an insecure channel, the match says nothing about who really produced the file. Treat checksums as integrity checks and verify provenance through a trusted channel.

Can I use this tool to store passwords securely?

No. Fast hashes like the SHA family can be guessed at enormous speed, so they are unsuited to password storage. Use a dedicated password-hashing or key-stretching function with a random per-password salt. Argon2 and scrypt are designed to be memory-hard. PBKDF2 is deliberately computationally expensive key stretching, not memory-hard; bcrypt also uses a configurable computational cost. Use a dedicated password-hash library for that.

Why isn't the hash of an empty input empty?

A hash always produces its fixed-length output, no matter how short (or empty) the input is. SHA-256 of the empty string is e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855; SHA-1, SHA-384 and SHA-512 produce their own 40-, 96- and 128-character digests for it.

Does uppercase or lowercase matter for the digest?

No. Uppercase and lowercase hex represent the same digest, and the Compare checksum box ignores case as well as surrounding spaces. This tool shows lowercase by default. Uppercase changes only the display; Copy always copies the lowercase digest.

Can the tool hash very large files?

Yes, but the file is loaded fully into browser memory before hashing, so extremely large files may be slow or exceed the browser's memory limits. For ordinary files — code, documents, archives, firmware images — it works instantly.

What does the 256 in SHA-256 mean?

It is the digest size in bits: SHA-256 reads any input and outputs 256 bits of digest, which is 32 bytes — 64 hexadecimal characters. SHA-1 outputs 160 bits (40 hex chars), SHA-384 outputs 384 bits (96 hex chars), and SHA-512 outputs 512 bits (128 hex chars).