Pular para o conteúdo
Quaestio

Gerador de hash

Digite um texto e os hashes são calculados com quatro algoritmos ao mesmo tempo.

0 caracteres · 0 bytes

Hashes

  • SHA-1160 bits

    Digite algo no campo acima.

  • SHA-256256 bits

    Digite algo no campo acima.

  • SHA-384384 bits

    Digite algo no campo acima.

  • SHA-512512 bits

    Digite algo no campo acima.

O texto nunca sai do seu navegador. O hash usa a função criptográfica do próprio navegador.

Incorporar

Incorpore esta ferramenta no seu site

Copie o código e cole onde a ferramenta deve aparecer, como num post de blog ou numa página escolar. É gratuito, o quadro não tem anúncios e a ferramenta calcula no navegador do visitante.

Como funciona

Um hash criptográfico transforma um texto de qualquer tamanho em um número fixo de caracteres. O mesmo texto sempre dá o mesmo hash, e a menor mudança dá um completamente diferente.

A função só funciona em um sentido. Não há como calcular o texto de volta a partir do hash, e esse é justamente o objetivo.

Hashes são usados para comparar arquivos, detectar que algo mudou e como peça de assinaturas e certificados.

O SHA-1 não é mais considerado seguro. Desde 2017 existem formas práticas de construir duas entradas diferentes com o mesmo hash SHA-1, então use-o só para comparar com sistemas antigos.

Senhas não devem ser guardadas com essas funções. Elas são feitas para ser rápidas, o que as torna fáceis de adivinhar por força bruta. Senhas pedem funções propositalmente lentas, como Argon2id, scrypt e PBKDF2. A OWASP só recomenda bcrypt para sistemas antigos em que nem Argon2id nem scrypt estão disponíveis.

O texto é codificado em UTF-8 antes do hash, então caracteres acentuados dão aqui o mesmo hash que em qualquer outra ferramenta correta.

Como a ferramenta funciona

O texto é transformado em UTF-8 e passado para crypto.subtle.digest, do navegador, que calcula SHA-1, SHA-256, SHA-384 e SHA-512 de uma vez. Os hashes são escritos em hexadecimal minúsculo, dois caracteres por byte: 40 caracteres para o SHA-1, 64 para o SHA-256, 96 para o SHA-384 e 128 para o SHA-512. Eles são recalculados a cada caractere que você digita.

Os mesmos bytes sempre dão o mesmo hash em qualquer ferramenta correta, mas o mesmo texto pode virar bytes diferentes. Em UTF-8, o ç ocupa dois bytes, C3 A7, mas na antiga codificação Latin-1 ocupa um só, E7. Uma palavra como ação tem, portanto, um hash aqui e outro num programa que trabalha em Latin-1.

Exemplo

abc dá o hash SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, o mesmo valor que o NIST traz no seu exemplo de teste do algoritmo. Se abc vier seguido de uma quebra de linha, como acrescenta o comando echo, o hash passa a ser edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. A quebra de linha não aparece no texto, mas o hash é outro.

Casos-limite

A ferramenta calcula o hash de textos, não de arquivos. A soma de verificação de um arquivo baixado é calculada sobre os bytes do arquivo, por exemplo com certutil -hashfile no Windows ou sha256sum no Linux. Colar o conteúdo do arquivo só dá o mesmo hash se o texto for idêntico byte a byte.

Os finais de linha são o motivo mais comum de hashes que não batem. O HTML Standard exige que uma caixa de texto converta todo final de linha em um LF simples, então o texto de um arquivo com finais de linha do Windows, CR LF, tem aqui um hash diferente do que o certutil calcula. Espaços no fim da linha e uma quebra de linha final também contam.

Em 15 de dezembro de 2022, o NIST anunciou que o SHA-1 deve ser abandonado até 31 de dezembro de 2030 e substituído pelo SHA-2 ou pelo SHA-3. Das funções daqui, SHA-256, SHA-384 e SHA-512 pertencem ao SHA-2.

Fontes

Como as ferramentas são verificadas