MD5 & SHA-256

Compute MD5 (legacy) and SHA-256 via Web Crypto in the browser.

Overview

Ron Rivest created MD5 in 1991 at MIT — the same Ron Rivest of the R in RSA — as a successor to MD4. The core idea of a hash function is to transform any input into a fixed-length bit sequence in a deterministic and irreversible way: the same input always produces the same hash, different inputs produce entirely different hashes, and it is computationally infeasible to recover the input from the output. That one-way property is what distinguishes a hash from a cipher: there is no decryption, only forward computation. In parallel, the NSA developed the SHA family with NIST — SHA-1 in 1993, SHA-2 with SHA-256 and SHA-512 in 2001 — as alternatives with longer outputs and stronger collision resistance.

The breakdown of MD5 began in the 1990s: Hans Dobbertin found internal weaknesses in 1996. In 2004, Wang Xiaoyun and her team demonstrated the first full collision — two different inputs producing the same 128-bit hash. The most dramatic practical attack came in 2008: researchers used MD5 collisions to forge a legitimate certificate authority certificate, which would have allowed creating HTTPS certificates accepted by all browsers. In 2012, the Flame malware used a similar technique to impersonate a signed Microsoft update. SHA-1 followed the same path: Google's SHAttered attack in 2017 demonstrated the first real SHA-1 collision using 110 GPU-years of computation.

Today, MD5 and SHA-1 are considered broken for cryptographic purposes. MD5 still has legitimate uses where intentional collisions are not a threat — verifying a download's integrity against a checksum published by the same server, for example. SHA-256 remains secure: it is what Bitcoin uses to mine blocks, what Git has used for commits since version 2.29, and what most TLS certificates use as their signature base. One detail that trips many developers: SHA-256 is not suitable for storing passwords directly because it is too fast — a modern GPU can test billions of hashes per second. For passwords, use bcrypt, scrypt, or Argon2, which are intentionally slow and resistant to hardware acceleration.

Technical deep dive

Common questions summarized

  • What is this tool for?: It runs fully in your browser: useful to validate, format, or convert data in everyday development.
  • Are my inputs sent to a server?: Processing happens locally with JavaScript. We do not store what you paste into the text areas.
  • Can I use this for real production data?: Use at your own risk. For secrets (passwords, tokens), prefer controlled environments and your company policies. And always review the generated contents. Never trust blindly things you see on the internet.

Sample payload to try

  • See also the larger "Code Snippets" sample; paste this excerpt to try locally: Usage — Integridade de arquivo: comparar hash antes e depois do download.

Tool guide

  • What a hash function is Maps data of any length to a fixed-size digest, practically one-way. A tiny input change completely changes the output.

  • What MD5 and SHA-256 are MD5 is old and must not be used for security; it still appears in legacy checksums. SHA-256 is in the SHA-2 family and suits integrity and many modern crypto uses.

  • What the tool does Computes hashes of your text in the browser.

  • Why use it Verify a downloaded file against a published hash, debugging, pipelines that still mention MD5 for compatibility.

Code Snippets

Code example
Integridade de arquivo: comparar hash antes e depois do download.

Usage

Integridade de arquivo: comparar hash antes e depois do download.

FAQ

What is this tool for?

It runs fully in your browser: useful to validate, format, or convert data in everyday development.

Are my inputs sent to a server?

Processing happens locally with JavaScript. We do not store what you paste into the text areas.

Can I use this for real production data?

Use at your own risk. For secrets (passwords, tokens), prefer controlled environments and your company policies. And always review the generated contents. Never trust blindly things you see on the internet.