Gerador de Hash SHA-3 e Keccak
Calcule digests SHA3-224/256/384/512, Keccak-256/512 e SHAKE128/256 a partir de texto ou bytes hex, direto no seu navegador.
O Gerador de Hash SHA-3 e Keccak roda inteiramente no seu navegador. O texto e os bytes hex que você processa são tratados no seu dispositivo e nunca são enviados à ArrayKit.
Abrir a ferramenta de Hash SHA-256 e SHA-1
Sobre Gerador de Hash SHA-3 e Keccak
O Gerador de Hash SHA-3 e Keccak calcula a família FIPS 202 completa — SHA3-224, SHA3-256, SHA3-384 e SHA3-512 — mais o Keccak-256 e o Keccak-512 originais e as funções de saída extensível SHAKE128/SHAKE256. Digite texto UTF-8 ou mude para o modo hex para gerar o hash de bytes brutos, e o digest em minúsculas atualiza enquanto você digita. Ele foi feito para a confusão cotidiana em torno desses algoritmos: SHA3-256 e Keccak-256 parecem idênticos mas diferem por um byte de padding, e o Ethereum optou pelo Keccak-256 antes de o padrão ser finalizado. Use-o para derivar um seletor de função do Ethereum, verificar um resultado keccak256 do Solidity, conferir um checksum SHA-3 ou escolher um comprimento de saída SHAKE. Cada digest é calculado no seu navegador, então os valores que você processa ficam no seu dispositivo.
Recursos
- Cobre SHA3-224, SHA3-256, SHA3-384 e SHA3-512 do NIST FIPS 202
- Inclui o Keccak-256 e o Keccak-512 originais usados em todo o Ethereum
- SHAKE128 e SHAKE256 com um comprimento de saída alinhado a byte que você escolhe
- Gere o hash de texto UTF-8 ou cole bytes hex brutos com um alternador de um clique
- O digest atualiza ao vivo enquanto você digita e é copiado com um único clique
- Mostra o comprimento do digest em bits para você confirmar a variante certa
- Erro claro quando o hex colado tem comprimento ímpar ou caracteres inválidos
- Roda inteiramente no seu navegador — nada do que você processa é enviado
Como usar Gerador de Hash SHA-3 e Keccak
- Escolha um algoritmo — SHA3-256, Keccak-256, SHAKE256 e mais
- Escolha UTF-8 para gerar o hash de texto ou Hex para gerar o hash de bytes brutos
- Digite ou cole sua entrada; o digest aparece na hora
- Para SHAKE, defina o comprimento de saída em bits e depois copie o digest hex
Exemplo
Entrada
algorithm: Keccak-256
input: "" (empty string)
Saída
c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
O hash Keccak-256 da string vazia que as ferramentas do Ethereum usam em todo lugar.
Erros comuns e solução de problemas
- SHA3-256 e Keccak-256 dão resultados diferentes para o mesmo texto. — Isso é esperado — eles usam padding diferente. Use Keccak-256 para o keccak256 do Ethereum e do Solidity; use SHA3-256 para o hash padronizado pelo NIST.
- O modo Hex informa um número ímpar de dígitos. — Cada byte são dois caracteres hex, então a entrada precisa ter comprimento par. Remova qualquer nibble solto ou caractere não hex e tente de novo.
- Um digest SHAKE está mais longo ou mais curto que o esperado. — O comprimento do SHAKE é definido em bits, não em bytes — 256 bits são 64 caracteres hex. Verifique se o comprimento é um múltiplo positivo de 8.
- O digest não corresponde à minha saída keccak256 do Solidity. — O Solidity gera o hash dos bytes brutos do valor codificado em ABI. Mude para o modo Hex e cole esses bytes exatos em vez do texto legível.
Perguntas frequentes
- Qual é a diferença entre SHA-3 e Keccak-256?
- Eles rodam a mesma esponja Keccak mas anexam um byte de separação de domínio diferente antes do padding (0x06 para SHA-3, 0x01 para Keccak). Essa única diferença torna os digests completamente diferentes, então um valor com hash SHA3-256 nunca vai igualar o mesmo valor com hash Keccak-256.
- Por que o Ethereum usa Keccak-256 em vez de SHA3-256?
- O Ethereum adotou o Keccak-256 da submissão Keccak original antes de o NIST finalizar o SHA-3 com um padding ligeiramente diferente. Para manter a compatibilidade, o Ethereum e o keccak256 do Solidity mantiveram a variante original, e é por isso que endereços e seletores de função são construídos sobre Keccak-256.
- O que são SHAKE128 e SHAKE256?
- São funções de saída extensível (XOFs): em vez de um tamanho fixo, você escolhe quantos bits de digest quer. O 128 e o 256 se referem à força de segurança, não ao comprimento da saída, então você pode pedir 128, 256, 512 ou mais bits de qualquer uma delas.
- Como gero o hash de bytes brutos para corresponder a uma chamada keccak256 em dados codificados em ABI?
- Mude o alternador de entrada para Hex e cole os bytes em hexadecimal — um prefixo 0x opcional e espaços são aceitos. A ferramenta gera o hash desses bytes exatos em vez do texto UTF-8 deles, que é o que um keccak256 do Solidity sobre dados codificados espera.
- O SHA-3 é só uma versão mais rápida ou mais segura do SHA-256?
- Não. O SHA-3 é um design completamente diferente — uma esponja Keccak em vez da construção Merkle–Damgård por trás do SHA-256 — escolhido como alternativa padronizada. No mesmo tamanho de digest eles oferecem resistência a colisões comparável, e suas saídas são inteiramente diferentes, então o SHA-3 não é um substituto direto.
- Que comprimento de saída devo escolher para o SHAKE?
- Combine com o que a especificação que você está implementando pedir. Um padrão comum é 256 bits para SHAKE128 e 512 bits para SHAKE256, mas qualquer múltiplo positivo de 8 bits funciona — esta ferramenta preenche esses padrões e permite que você os substitua.
Ferramentas relacionadas
Todas as ferramentas de ArrayKit