Gerador de Hash Online

Gere hashes criptográficos de forma instantânea e gratuita! Suportamos MD5, SHA-1, SHA-256, SHA-512 e Bcrypt. Ideal para verificação de integridade de arquivos, comparação de dados, testes de desenvolvimento e estudo de algoritmos de hash.

O que é uma Função de Hash?

Uma função de hash é um algoritmo matemático que transforma qualquer quantidade de dados (texto, arquivo, etc.) em uma string de tamanho fixo chamada "hash" ou "digest". O hash funciona como uma "impressão digital" única dos dados originais. Mesmo uma pequena alteração nos dados de entrada resulta em um hash completamente diferente.

Algoritmos de Hash Disponíveis

MD5 (Message Digest 5)

Gera hash de 128 bits (32 caracteres hexadecimais). Algoritmo rápido mas considerado inseguro para criptografia devido a vulnerabilidades conhecidas. Ainda útil para checksums e verificação de integridade não-crítica.

Exemplo: 5d41402abc4b2a76b9719d911017c592 (hash de "hello")

SHA-1 (Secure Hash Algorithm 1)

Gera hash de 160 bits (40 caracteres). Mais seguro que MD5, mas também considerado obsoleto para uso criptográfico desde 2017. Usado em Git para identificar commits.

Exemplo: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

SHA-256 (Secure Hash Algorithm 256) ⭐

Gera hash de 256 bits (64 caracteres). Parte da família SHA-2, é o padrão recomendado atualmente para aplicações seguras. Usado em blockchain (Bitcoin), certificados SSL/TLS e assinaturas digitais.

Exemplo: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-512 (Secure Hash Algorithm 512)

Gera hash de 512 bits (128 caracteres). A versão mais robusta da família SHA-2, oferece máxima segurança contra colisões. Usado em sistemas que exigem segurança crítica.

Bcrypt

Algoritmo especialmente projetado para hash de senhas. Inclui "salt" automático e fator de custo ajustável, tornando-o resistente a ataques de força bruta. O padrão da indústria para armazenamento seguro de senhas.

Formato: $2b$10$[salt][hash]

Casos de Uso para Funções de Hash

  • Verificação de Integridade: Confirmar que um arquivo baixado não foi corrompido ou alterado
  • Armazenamento de Senhas: Guardar senhas de forma segura sem armazenar o texto original
  • Assinaturas Digitais: Garantir autenticidade e integridade de documentos e mensagens
  • Blockchain e Criptomoedas: Validar transações e criar provas de trabalho
  • Deduplicação de Dados: Identificar arquivos ou conteúdos duplicados rapidamente
  • Cache Keys: Gerar chaves únicas para sistemas de cache baseados em conteúdo

MD5 vs SHA-1 vs SHA-256: Qual usar?

Algoritmo Tamanho Segurança Uso Recomendado
MD5 128 bits ❌ Inseguro Checksums não-críticos
SHA-1 160 bits ⚠️ Obsoleto Git, legado
SHA-256 256 bits ✅ Seguro Uso geral recomendado
SHA-512 512 bits ✅ Muito seguro Alta segurança
Bcrypt Variável ✅ Específico Senhas apenas

Como usar hashes em diferentes linguagens

JavaScript/Node.js

const crypto = require('crypto');

// SHA-256
const hash = crypto.createHash('sha256').update('texto').digest('hex');

// MD5
const md5 = crypto.createHash('md5').update('texto').digest('hex');

Python

import hashlib

# SHA-256
hash_obj = hashlib.sha256('texto'.encode())
hash_hex = hash_obj.hexdigest()

# MD5
md5_hash = hashlib.md5('texto'.encode()).hexdigest()

PHP

// SHA-256
$hash = hash('sha256', 'texto');

// MD5
$md5 = md5('texto');

// Bcrypt para senhas
$bcrypt = password_hash('senha', PASSWORD_BCRYPT);

Perguntas Frequentes

É possível reverter um hash para obter o texto original?

Não. Funções de hash são unidirecionais por design - não há como "descriptografar" um hash de volta ao texto original. Ataques de "rainbow tables" tentam adivinhar o original comparando com hashes pré-calculados, mas isso é mitigado usando salt em senhas.

Por que MD5 e SHA-1 não são mais recomendados?

Pesquisadores descobriram vulnerabilidades que permitem criar "colisões" - dois inputs diferentes que produzem o mesmo hash. Isso compromete sua segurança para usos criptográficos. Para verificação de integridade básica ainda funcionam, mas SHA-256 é preferível.

Devo usar hash para armazenar senhas no banco de dados?

Sim, mas com bcrypt, scrypt ou Argon2! Nunca use MD5 ou SHA-256 simples para senhas. Use algoritmos específicos para senhas que incluem salt automático e são computacionalmente custosos, protegendo contra ataques de força bruta.

O que é "salt" em hashes de senha?

Salt é um valor aleatório único adicionado a cada senha antes de fazer o hash. Isso garante que duas senhas idênticas terão hashes diferentes, impedindo ataques de rainbow table. Bcrypt adiciona salt automaticamente.

Posso usar hash para criptografar dados?

Não. Hash é para verificação de integridade, não criptografia. Para criptografia (onde você precisa reverter os dados), use algoritmos como AES, RSA ou ChaCha20. Hash é irreversível por natureza.

Segurança e Boas Práticas

  • Use SHA-256 ou superior para qualquer aplicação que requeira segurança.
  • Nunca armazene senhas em MD5 ou SHA simples - sempre use bcrypt, scrypt ou Argon2.
  • Adicione salt único para cada senha, mesmo que use algoritmos já com salt embutido.
  • Aumente o fator de custo do bcrypt conforme hardware evolui (recomendado: 10-12).
  • Considere HMAC (Hash-based Message Authentication Code) quando precisar de autenticação.