Generador de hash Keccak-256

Genera hashes Keccak-256 en línea, la función usada por Ethereum y Solidity. Hashea texto o bytes hex, obtén selectores de 4 bytes y topics de eventos, y copia resultados con un clic.

Entrada

25 bytesEl hash se actualiza al escribir

Ejemplos

Salida

Keccak-256

32 bytes · el hash que usan Ethereum y keccak256() de Solidity

0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b

Selector de función

Primeros 4 bytes — identifica una función en el calldata

0xa9059cbb

Topic del evento

Hash completo — topic[0] en logs cuando es firma de evento

0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b

SHA3-256 (comparación)

El estándar NIST SHA-3 final usa otro padding, así que da otro resultado. Ethereum usa Keccak-256 arriba.

0x4b40e901eada9ab2d6dfa2a4e5f5088af21b56bb877126cc83f68849c4aa9609

Qué significa el hash

Keccak-256 genera una huella de 32 bytes de tu entrada. En Ethereum alimenta `keccak256()` en Solidity. Los primeros 4 bytes son el selector de función en el calldata; el hash completo de la firma de un evento es topic[0] en los logs.

Cómo se calcula

Texto en UTF-8 o bytes en hex → Keccak-256 (padding de Ethereum). Selector = primeros 4 bytes. Topic de evento = hash completo de la firma. SHA3-256 de NIST usa otro padding — solo comparación.

Ejemplos resueltos

  1. Selector `transfer` ERC-20

    transfer(address,uint256)

    Primeros 4 bytes del Keccak-256 → 0xa9059cbb.

    Identifica llamadas transfer en exploradores y wallets.

  2. Selector `approve`

    approve(address,uint256)

    → 0x095ea7b3.

    Común al aprobar un gastador o DEX.

  3. Texto y hex

    "hello world" vs 0xdeadbeef.

    Cada entrada da un hash distinto; cadena vacía → c5d24601…d982.

    Modo hex para bytes crudos; texto para firmas.

Preguntas frecuentes

¿Para qué se usa Keccak-256 en crypto?
Direcciones de contrato, selectores, eventos, CREATE2 y el opcode en Solidity.
¿Keccak-256 vs SHA3-256?
Misma permutación, distinto padding. Ethereum usa Keccak pre-NIST.
¿Cómo calculo un selector en Solidity?
Firma canónica sin espacios, Keccak-256, primeros 4 bytes.
¿Qué es un topic de evento?
topic[0] = Keccak-256 de la firma del evento, p. ej. Transfer(address,address,uint256).
¿Se envían mis datos al servidor?
No. Todo en el navegador con @noble/hashes.
¿Importan los espacios en la firma?
Sí. El formato canónico no lleva espacios extra.

Herramientas relacionadas

Cómo funciona

  • Escribe texto (hasheado como UTF-8) o cambia a Hex para bytes en bruto; el hash se actualiza al escribir.
  • Introduce una firma de función o evento como transfer(address,uint256) para obtener también su selector de 4 bytes y topic de evento.
  • Todo se ejecuta en tu navegador con una implementación Keccak auditada: tu entrada no sale de tu dispositivo.

Solo con fines educativos, no es asesoramiento financiero. El rendimiento pasado no garantiza resultados futuros.