Calculadora de hash SHA-3 / SHAKE / Keccak
CifradoTodo se ejecuta en tu navegador: no se sube nada
Tres familias de hash construidas sobre la misma permutación, reunidas en un sitio. Comparten una única implementación y solo se diferencian en un byte de relleno, y sus salidas no tienen ninguna relación. Ahí está la trampa: SHA3-256 y Keccak-256 no son lo mismo. Cuando el NIST finalizó SHA-3 en 2015 cambió el relleno de 0x01 a 0x06, y ese único byte hace que los dos produzcan resúmenes completamente distintos. Ethereum ha usado Keccak-256 original desde el primer día: las direcciones de contrato, los hashes de transacción, los topics de eventos y los selectores de método de ERC-20 se basan en él, así que comprobarlos contra SHA3-256 da algo perfectamente bien formado que nadie reconoce. Cada familia tiene su sitio; el desplegable las agrupa en consecuencia.
Funciones
- Diez variantes: SHA3-224/256/384/512, SHAKE128/256 y Keccak-224/256/384/512
- La longitud de salida de SHAKE es configurable (1–512 bytes); las demás las fija el estándar
- Keccak original se lista aparte de SHA-3: Ethereum usa el primero
- Salida en hexadecimal (mayúsculas o minúsculas) o Base64
- El texto no ASCII se procesa como bytes UTF-8, igual que openssl y las herramientas de Ethereum
- Implementado aquí, así que no depende de qué variantes de SHA-3 ofrezca el navegador
Cómo se usa
- Pega el texto en el campo de entrada
- Elige la variante (para todo lo relacionado con Ethereum, Keccak-256)
- Si elegiste una variante SHAKE, fija la longitud de salida
- Pulsa Ctrl/⌘ + Enter o Ejecutar, y copia el resultado
Preguntas frecuentes
- ¿Cuál es la diferencia entre SHA3-256 y Keccak-256?
- Un byte de relleno, y resultados completamente distintos. Los dos usan la misma permutación Keccak-f[1600] y el mismo tamaño de bloque de 136 bytes; la única diferencia es el byte que se añade al final de la absorción. El Keccak original añade 0x01 y el SHA-3 finalizado por el NIST añade 0x06. Para la cadena vacía, Keccak-256 da c5d24601… mientras que SHA3-256 da a7ffc6f8…: ambos bien formados, ni un byte en común. Ethereum usa el Keccak original en todo, así que debes seleccionar Keccak-256 al verificar direcciones de contrato o hashes de transacción.
- ¿Qué es SHAKE y por qué su longitud de salida puede variar?
- SHAKE es una función de salida extensible (XOF): puede exprimir tanta salida como se le pida, en lugar de unos 32 bytes fijos como SHA-256. No es truncamiento; se deriva de la construcción de esponja, que permuta de nuevo cada vez que se exprime un bloque y puede seguir indefinidamente. Encaja en casos que necesitan salida de longitud variable, como derivar varias claves de una misma semilla, y se usa mucho en KMAC y en firmas postcuánticas. Aquí el límite son 512 bytes, muy por encima del uso real.
- ¿Cuál de las diez variantes debería elegir?
- Según el propósito. Para todo lo relacionado con Ethereum o blockchain, siempre Keccak-256, nunca SHA3-256. Para diseños nuevos que sigan los estándares del NIST, elige SHA3-224/256/384/512 por la longitud que necesites, y 256 es la más común. Para salida de longitud variable, como derivación de claves o expansión de números aleatorios, elige SHAKE128 (más rápida) o SHAKE256 (más margen de seguridad). Keccak-224/384/512 salen sobre todo al reproducir sistemas antiguos o comparar implementaciones.
- ¿Es SHA-3 más seguro que SHA-256? ¿Debería migrar?
- Hoy no hace falta. SHA-256 no tiene ningún ataque práctico, y SHA-3 importa por otra razón: es estructuralmente distinto. SHA-2 se construye sobre Merkle–Damgård y SHA-3 sobre una esponja, así que sus debilidades no se solapan. SHA-3 es, por tanto, un seguro contra una futura ruptura de SHA-2 más que una opción más fuerte ahora mismo. Cualquiera de los dos sirve para sistemas nuevos; SHA-256 tiene mejor compatibilidad y más soporte de hardware.
Herramientas relacionadas
Hash
CifradoCalcula resúmenes MD5, SHA-1, SHA-256, SHA-512 o MD4 de cualquier texto, en bytes UTF-8 para que coincidan con openssl. En tu navegador.
RIPEMD-160
CifradoCalcula resúmenes RIPEMD-160, o cambia a HASH160 — el paso SHA-256 y luego RIPEMD-160 detrás de las direcciones Bitcoin. Salida en hex o Base64.
HMAC
CifradoFirma un mensaje con una clave secreta mediante HMAC y obtén un resultado que coincide con Node, Java y Python. La clave no sale de tu navegador.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.