100% privado: Usa a Web Crypto API nativa do navegador e uma implementacao local de MD5. Zero requisicoes de rede.

Gerar Hash

O hash aparecera aqui...

Todos os Algoritmos de Uma Vez

Gere o hash da mesma entrada com todos os cinco algoritmos simultaneamente.

MD5
SHA-1
SHA-256
SHA-384
SHA-512

Comparar Hashes

Cole dois valores de hash para verificar se sao iguais — util para checar integridade de arquivos ou comparar checksums.

O que e uma Funcao Hash?

Uma funcao hash e um algoritmo matematico que transforma uma entrada de qualquer tamanho em uma saida de tamanho fixo chamada hash, digest ou checksum. Funcoes hash sao a base da criptografia moderna, usadas em assinaturas digitais, verificacao de certificados, armazenamento de senhas, verificacao de integridade de dados e enderecamento de conteudo.

Tres propriedades definem uma funcao hash criptografica: determinismo (entradas identicas sempre produzem saidas identicas), efeito avalanche (uma pequena mudanca na entrada muda radicalmente a saida) e unidirecionalidade (voce nao consegue reverter um hash para recuperar a entrada original). Uma funcao hash segura tambem resiste a ataques de colisao — encontrar duas entradas diferentes que produzem o mesmo hash.

Comparacao de Algoritmos de Hash

Algoritmo Tamanho da Saida Status de Seguranca Casos de Uso Comuns
MD5 128 bits (32 hex) Quebrado Checksums, chaves de cache, deduplicacao sem seguranca
SHA-1 160 bits (40 hex) Descontinuado Sistemas legados, IDs de objetos Git (em transicao)
SHA-256 256 bits (64 hex) Seguro Certificados TLS, assinatura de codigo, Bitcoin, JWTs
SHA-384 384 bits (96 hex) Forte TLS 1.2+, requisitos governamentais/compliance
SHA-512 512 bits (128 hex) Forte Aplicacoes de alta seguranca, pericia digital, arquivamento

Hashing em JavaScript com Web Crypto API

Navegadores modernos expoe a API crypto.subtle.digest() para computar hashes SHA inteiramente no client-side, sem dependencias. O exemplo a seguir calcula um hash SHA-256 e converte o resultado para uma string hexadecimal:

async function sha256(message) {
  const encoder = new TextEncoder();
  const data = encoder.encode(message);
  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

// Uso
const hash = await sha256('hello world');
console.log(hash);
// => b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576f4...

Web Crypto nao suporta MD5 porque MD5 nao e considerado criptograficamente seguro. Para MD5, uma implementacao pura em JavaScript e usada como fallback.

Perguntas Frequentes

O que e uma funcao hash?

Uma funcao hash recebe uma entrada (texto, arquivo ou qualquer dado binario) e produz uma string de caracteres de tamanho fixo. A mesma entrada sempre produz o mesmo hash, mas qualquer mudanca na entrada — mesmo um unico caractere — produz um hash completamente diferente. Isso torna os hashes uteis para detectar alteracoes em dados, verificar downloads e armazenar senhas sem salvar o valor original.

Qual e a diferenca entre MD5 e SHA-256?

MD5 produz um digest de 128 bits (32 caracteres hex) e e rapido de computar, mas colisoes criptograficas podem ser criadas intencionalmente — duas entradas diferentes podem ser feitas para produzir o mesmo hash MD5. Isso torna o MD5 inadequado para qualquer finalidade de seguranca. SHA-256 produz um digest de 256 bits e permanece seguro contra todos os ataques conhecidos. Use SHA-256 ou SHA-512 para qualquer aplicacao sensivel em seguranca. MD5 e aceitavel apenas para usos sem seguranca como chaves de cache ou checksums nao criticos.

O hash e reversivel? Posso descriptografar um hash?

Nao — hashing e uma operacao unidirecional por design. Nao existe algoritmo para recuperar a entrada original a partir de um hash. Porem, entradas curtas ou comuns podem ser encontradas via forca bruta ou rainbow tables pre-computadas. Por isso, senhas devem ser hasheadas com algoritmos lentos e com salt como bcrypt ou Argon2, nao com algoritmos rapidos como SHA-256. Os algoritmos de hash nesta pagina sao projetados para integridade de dados e checksums, nao para armazenamento de senhas.

Devo usar SHA-256 para hash de senhas?

Nao. SHA-256 e outras funcoes hash de proposito geral sao intencionalmente rapidas, o que torna ataques de forca bruta trivialmente viaveis em hardware moderno (bilhoes de hashes por segundo). Para senhas, use algoritmos de hash dedicados e lentos: bcrypt (mais amplamente suportado), Argon2id (melhor pratica moderna, vencedor da Password Hashing Competition) ou scrypt. Esses sao projetados para serem computacionalmente caros e incluem salting integrado para derrotar ataques de rainbow table.

Ferramentas Relacionadas