Avalancha de hash

Invierte cada bit de entrada UTF-8 y compara hashes SHA-256 completos, máscaras XOR y distancias de Hamming.

Acerca de esta herramienta

Introduce hasta 256 bytes UTF-8 y elige Analizar. La herramienta calcula el hash SHA-256 de la entrada original, luego invierte cada bit de entrada por separado y calcula el hash de los bytes modificados. Se comprueban todos los bits de entrada: hasta 2048 cambios. El recuento de bytes mostrado incluye el texto completo; una entrada demasiado larga se rechaza, nunca se acorta en silencio.

El índice de bit de entrada empieza en 0 y recorre los bytes en orden. Dentro de cada byte, el bit 0 es el de menor peso (LSB): las máscaras son 1, 2, 4, 8, 16, 32, 64 y 128. Cada ensayo parte de los bytes originales y cambia exactamente un bit. La secuencia de bytes modificada se hashea directamente, aunque no sea UTF-8 válido. Nunca se vuelve a decodificar a texto.

El texto se codifica con la codificación UTF-8 estándar del navegador, incluido el reemplazo de subrogados UTF-16 no emparejados. No se aplica normalización Unicode. Un texto visualmente idéntico puede por tanto tener bytes y hashes distintos. La entrada original y la modificada se muestran por completo en hexadecimal, dos dígitos por byte.

SHA-256 produce 256 bits de salida. El XOR de los hashes original y modificado tiene un 1 donde los hashes difieren. Contar esos unos da la distancia de Hamming. La máscara 16 × 16 se lee de izquierda a derecha y luego de arriba abajo, bit de mayor peso primero en cada byte de salida, como el orden hexadecimal habitual. Los cuadrados rellenos son 1; los de contorno, 0.

La curva muestra cada cambio de bit de entrada; selecciona cualquier ensayo con el índice exacto, el deslizador o el diagrama. Esta selección usa el análisis terminado y no vuelve a hashear. Media, mínimo y máximo resumen todos los ensayos. La referencia de 128 bits es el 50 % de la salida: una guía estadística, no un resultado exigido para un cambio ni una prueba de seguridad criptográfica.

El texto vacío es válido y tiene su propio hash SHA-256. Sin bits de entrada no hay ensayos ni estadísticas de distancia. Una sonda no válida oculta sus valores y su máscara hasta corregirla. Cambiar la entrada, borrar el resultado o salir de la herramienta cancelan el trabajo pendiente. Un condensado del navegador ya en curso puede terminar internamente, pero no puede restaurar un resultado cancelado. Ningún análisis parcial se presenta como completo. SHA-256 debe estar disponible mediante la API Web Crypto del navegador. Los borradores, el índice exacto de la sonda, los detalles abiertos y los análisis terminados permanecen en el almacenamiento local de este navegador al recargar o cambiar de idioma. Los análisis terminados se restauran desde sus hashes guardados sin volver a calcularlos. Los borradores no válidos y Borrar esperan un análisis nuevo. Se descarta una copia dañada, pero se conserva su texto. Los borradores que superan el guardado automático siguen disponibles al navegar por la app; guarda su texto UTF-8 antes de recargar, lo que recupera la copia anterior.

Fuentes: W3C Web Cryptography API: digest and SHA-256; WHATWG Encoding: TextEncoder and UTF-8. NIST: worked SHA-256 example for abc.

Abre « Bytes y hashes » para consultar los bytes y hashes completos, originales y modificados, y el valor XOR.