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

Como usar Gerador de Hash SHA-3 e Keccak

  1. Escolha um algoritmo — SHA3-256, Keccak-256, SHAKE256 e mais
  2. Escolha UTF-8 para gerar o hash de texto ou Hex para gerar o hash de bytes brutos
  3. Digite ou cole sua entrada; o digest aparece na hora
  4. 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

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