Gerador SHA-1 e busca de hashes

BeetVPN

Sua entrada

Entrada

Resultados

Resultado

Seu resultado aparecerá aqui.


Entendendo SHA-1

O SHA-1 produz um resumo determinístico de 160 bits, normalmente escrito com 40 caracteres hexadecimais. Ele foi muito usado para integridade de arquivos, assinaturas e armazenamento de senhas, mas colisões práticas fazem com que não deva ser escolhido para novas aplicações de segurança.

Tamanho do resumo160 bits
Formato comum40 caracteres hexadecimais

Geração e busca no banco de dados

O gerador calcula o hash dos bytes exatos da entrada. Depois, a busca compara cada resumo com nosso conjunto multihash. Ela pode recuperar um texto simples já indexado, inclusive valores de nossa própria pesquisa, mas não reconstruir texto arbitrário a partir do resumo.

Exemplo detalhado

O resumo SHA-1 de hello é aa f4 c6 1d dc c5 e8 a2 da be de 0f 3b 48 2c d9 ae a9 43 4d sem espaços. Hello, hello e hello\n produzem resultados diferentes.

Como funciona a busca?

A ausência de correspondência significa apenas que o texto simples não está no conjunto consultado. Hashes com salt, sequências aleatórias, entradas longas e codificações incomuns têm menor chance de coincidir. Para vários resumos, a API oferece busca em lote no mesmo banco lógico.

Orientações de segurança

Não use SHA-1 em novas assinaturas, certificados ou projetos de segurança. Senhas devem usar Argon2id, scrypt ou bcrypt com um salt exclusivo. Adicionar salt ao SHA-1 bloqueia tabelas pré-calculadas, mas não corrige sua velocidade excessiva contra tentativas offline.

Reproduzir o cálculo

Esses exemplos calculam exatamente o hash do texto “hello” sem quebra de linha ao final. Um espaço ou uma quebra de linha alteraria o resumo.

Shell
printf %s 'hello' | sha1sum
PHP
echo hash('sha1', 'hello');
JavaScript
const bytes = new TextEncoder().encode('hello');
const digest = await crypto.subtle.digest('SHA-1', bytes);

Comparação com outras variantes de SHA

O SHA-1 é mais longo que o MD5, mas não é mais resistente a colisões. SHA-256 e SHA-512 pertencem à família SHA-2 e continuam adequados para integridade quando usados corretamente, embora também não sejam funções de armazenamento de senhas.

Perguntas frequentes

Qual é o tamanho de um hash SHA-1?

O SHA-1 produz 160 bits, ou 20 bytes e 40 caracteres hexadecimais.

É possível descriptografar SHA-1?

Não. O Md5Decrypt busca em seu conjunto uma correspondência já calculada; ele não reverte matematicamente o SHA-1.

Por que o SHA-1 não é mais recomendado?

Colisões práticas mostram que conteúdos diferentes podem ser construídos com o mesmo resumo, invalidando o uso moderno para integridade contra atacantes e assinaturas.

SHA-1 com salt é seguro para senhas?

Um salt impede tabelas pré-calculadas, mas o SHA-1 continua rápido demais. Use uma KDF de senha configurável, como Argon2id, scrypt ou bcrypt.

Por que meu hash SHA-1 não foi encontrado?

O texto simples pode estar ausente, ter salt, ser longo ou aleatório, ou ter sido codificado de forma diferente da esperada.

Observações práticas

A busca compara resumos SHA-1 exatos com o banco de dados. O verificador de arquivos é útil para checar integridade, mas o SHA-1 não é mais adequado para assinaturas modernas nem armazenamento de senhas.

Comprimento160 bits / 40 caracteres hexadecimais
LoteAté 20 resumos
ArquivoCalcular e comparar

Perguntas frequentes

Por que o uso de SHA-1 é desaconselhado?

Colisões práticas foram demonstradas. Ele não deve mais proteger assinaturas, certificados ou novos sistemas.

Para que serve a soma de verificação do arquivo?

Ele calcula o resumo de um arquivo para compará-lo com um valor publicado. Essa verificação é separada de uma busca no banco de dados.

Por que uma busca pode falhar?

O banco de dados só pode retornar texto já indexado que corresponda exatamente ao resumo.

Exemplos reproduzíveis

Esses comandos calculam o hash dos cinco bytes UTF-8 de “hello”, sem adicionar uma quebra de linha ao final.

Terminal

printf %s "hello" | sha1sum

PHP

hash('sha1', 'hello');

JavaScript

const bytes = new TextEncoder().encode('hello');
const digest = await crypto.subtle.digest('SHA-1', bytes);