Pular para o conteúdo
LeedyBox
Apoiar

Gerador de hash: MD5, SHA-1, SHA-256, SHA-512 e HMAC

Calcule hashes MD5, SHA-1, SHA-256, SHA-384 e SHA-512 ou HMACs de textos e arquivos no navegador e compare-os com um checksum esperado.

Entrada

O hash é calculado sobre o texto exatamente como foi digitado, incluindo espaços e quebras de linha. As quebras de linha desta caixa são tratadas como LF.

Resultados

Digite um texto ou escolha um arquivo para ver os hashes.

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

Valores hex são comparados sem diferenciar maiúsculas e minúsculas; valores Base64 precisam ser idênticos.

Observações

  • MD5 e SHA-1 têm ataques de colisão conhecidos e não devem ser usados para fins de segurança. Use-os apenas em verificações que não envolvem segurança, como comparar um download com um checksum publicado.
  • Um hash não é criptografia. Esta ferramenta não consegue transformar um hash de volta no texto ou arquivo original.
  • Não use hashes simples para armazenar senhas. Use um esquema próprio para hash de senhas, como Argon2, scrypt ou bcrypt.
  • Os hashes são calculados a partir dos bytes, então o mesmo texto com finais de linha diferentes (CRLF ou LF), outra codificação de caracteres ou espaços a mais gera um hash diferente.
  • O HMAC combina um hash com uma chave secreta. O HMAC-MD5 não é oferecido aqui.
  • Textos e arquivos são processados no seu navegador e não são enviados à LeedyBox. Arquivos muito grandes podem ser lentos, porque o arquivo inteiro é lido na memória.

Revise os resultados antes de usá-los. A ferramenta é fornecida no estado em que se encontra, sem garantia, e os resultados podem estar incompletos ou incorretos. Termos de Serviço

MD5 e SHA-1 não são adequados para fins de segurança. Um hash não é criptografia, e um checksum que confere só mostra que os dados são iguais aos dados a partir dos quais o checksum foi gerado.

Como usar

  1. Em "Entrada", escolha "Texto" para calcular o hash de um texto digitado ou colado, ou "Arquivo" para calcular o de um arquivo do seu dispositivo.
  2. Para um arquivo, escolha-o ou solte-o na caixa e clique em "Calcular hashes". Se depois mudar o "Modo HMAC" ou a chave, clique no botão novamente.
  3. Escolha um "Formato de saída": hex em minúsculas, hex em maiúsculas ou Base64. Mudar o formato só altera a forma de escrever os mesmos resultados, então nada é recalculado.
  4. Para calcular HMACs em vez de hashes simples, marque "Modo HMAC" e digite a chave secreta no campo que aparece. O HMAC-MD5 não é oferecido, então a linha do MD5 mostra "Indisponível para HMAC".
  5. Para verificar um download, cole o valor publicado em "Checksum esperado (opcional)". Ele é comparado com todos os resultados calculados, e a linha correspondente é marcada com "Confere".

Perguntas frequentes

Por que meu hash é diferente do que o sha256sum ou outra ferramenta mostra?

A caixa de texto calcula o hash exatamente dos caracteres digitados, então pequenas diferenças mudam o resultado. Uma causa comum é a quebra de linha no final: echo hello | sha256sum calcula o hash de "hello" mais uma quebra de linha, o que dá um SHA-256 diferente de "hello" sozinho, enquanto printf hello | sha256sum não a acrescenta. Caracteres que parecem iguais também podem estar armazenados de formas diferentes, por exemplo é como um único ponto de código ou como e seguido de um acento combinante. Para calcular o hash dos bytes exatos de um arquivo, use "Arquivo" em vez de colar o conteúdo, porque a caixa de texto codifica o texto como UTF-8 e trata as quebras de linha como LF.

O checksum publicado está correto. Então por que não confere?

Cole apenas o valor do hash. Espaços, tabulações e quebras de linha são removidos antes da comparação, então, se você colar uma linha inteira de um arquivo de checksums, o nome do arquivo passa a fazer parte do valor, e um prefixo como sha256: também impede a correspondência. Todos os algoritmos calculados são verificados, então não é preciso escolher um. Se só o valor foi colado e ainda assim não confere, verifique se o "Modo HMAC" está desativado e se o checksum usa MD5, SHA-1, SHA-256, SHA-384 ou SHA-512; outros algoritmos, como SHA-3 ou BLAKE2, não são calculados aqui. Caso contrário, o arquivo provavelmente é diferente daquele usado para gerar o checksum, por exemplo outra versão ou um download incompleto.

O que significa um resultado que começa com e3b0c442 ou d41d8cd9?

São os hashes de uma entrada vazia (0 bytes) escritos em hexadecimal: o valor SHA-256 começa com e3b0c442 e termina com b855, e o valor MD5 é d41d8cd98f00b204e9800998ecf8427e. Com o "Modo HMAC" desativado, eles aparecem quando você esvazia a caixa de texto ou com um arquivo de 0 bytes. Se um programa seu gerar um desses valores para dados que não deveriam estar vazios, ele provavelmente calculou o hash de uma string vazia ou de um arquivo vazio.

Posso verificar a assinatura de um webhook ou de uma API com o modo HMAC?

Muitas vezes, sim, se a assinatura for um HMAC com SHA-1, SHA-256, SHA-384 ou SHA-512; o HMAC-MD5 não é oferecido. Marque "Modo HMAC", digite o segredo de assinatura, use o corpo da requisição como entrada e cole a assinatura em "Checksum esperado (opcional)" sem um prefixo como sha256=; assinaturas em hex e em Base64 são reconhecidas. A entrada precisa ter os mesmos bytes que foram assinados, então um corpo JSON reformatado não vai conferir, e um corpo com quebras de linha CRLF precisa ser salvo como arquivo e processado em "Arquivo". Muitos serviços assinam mais do que o corpo, como um timestamp e um separador colocados antes dele, então confira na documentação do serviço o que exatamente é assinado.

Minha chave secreta está em hex ou Base64. Posso usá-la?

Só se o serviço usar o texto da chave como está. O campo "Chave secreta (UTF-8)" usa os bytes UTF-8 dos caracteres digitados e não decodifica hex nem Base64, então, se o serviço decodificar a chave antes de assinar, o HMAC calculado aqui não vai conferir. Espaços no início ou no fim do campo também fazem parte da chave.

Como crio um hash de Subresource Integrity (SRI)?

Escolha "Arquivo", selecione o script ou a folha de estilo, verifique se o "Modo HMAC" está desativado, clique em "Calcular hashes" e defina o "Formato de saída" como "Base64". Coloque sha384- antes do valor SHA-384 para obter o valor do atributo integrity; sha256- e sha512- funcionam da mesma forma. O arquivo precisa ter os mesmos bytes que o arquivo que o navegador baixa; caso contrário, o navegador se recusa a usá-lo. Um arquivo carregado de outra origem também precisa do atributo crossorigin, e o servidor dele precisa permitir CORS.

Qual é a diferença entre a saída em hex e em Base64?

As duas representam o mesmo digest. Hex usa dois caracteres por byte, 64 caracteres para SHA-256, e é o formato que ferramentas como o sha256sum mostram; Base64 é mais curto, 44 caracteres para SHA-256. A saída Base64 usa o alfabeto padrão com + e / e preenchimento =, e não a variante segura para URL com - e _, então um valor na variante segura para URL, ou sem o preenchimento =, pode não conferir na comparação.