Calculadora de códigos Hash Fowler-Noll-Vo FNV1a-32
Publicado: 18 de febrero de 2025, 0:08:57 UTC
Calculadora de código hash que utiliza la función hash de 32 bits Fowler-Noll-Vo 1a (FNV1a-32) para calcular un código hash basado en la entrada de texto o la carga de archivos.Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
La función hash FNV-1a de 32 bits forma parte de la familia de funciones hash Fowler-Noll-Vo (FNV), diseñadas para realizar hash rápidos manteniendo una buena distribución de los valores hash. Se utiliza habitualmente en aplicaciones como tablas hash, sumas de comprobación y búsquedas de datos. Produce un código hash de 32 bits (4 bytes), a menudo representado como un número hexadecimal de 8 dígitos.
La variante FNV-1a es una versión mejorada de la función FNV-1 original con mayor seguridad.
Divulgación completa: Yo no escribí la implementación específica de la función hash utilizada en esta página. Es una función estándar incluida en el lenguaje de programación PHP. Sólo hice la interfaz web para ponerla a disposición del público aquí por conveniencia.
Acerca del Algoritmo Hash de 32 bits Fowler-Noll-Vo FNV-1a
No soy matemático, pero intentaré explicar esta función hash utilizando una analogía que mis colegas no matemáticos puedan entender. Si prefieres una explicación matemática científicamente correcta, estoy seguro de que puedes encontrarla en otra parte ;-)
En primer lugar, veamos el algoritmo FNV-1 como una receta para preparar un batido especial. Cada ingrediente que añades (como frutas, leche o miel) representa un dato, como letras, números o incluso un archivo entero.
Ahora, el objetivo es mezclar estos ingredientes de una manera muy específica para que incluso el más mínimo cambio en la receta (como añadir un arándano extra) haga que el batido tenga un sabor completamente diferente. Así es como funcionan las funciones hash: crean un "sabor" único (o valor hash) para cada conjunto único de ingredientes (o datos de entrada).
El algoritmo FNV-1 realiza este proceso en varios pasos:
Paso 1: Empezar con una base (Offset Basis)
Piense en esto como si vertiera una base especial para batidos en su batidora. Esta base es siempre la misma, independientemente de los ingredientes que añada. En FNV-1, esto se llama la "base de compensación" - sólo un número de partida de fantasía.
Paso 2: Añada los ingredientes uno a uno (Procesamiento de datos)
Ahora empiece a añadir sus ingredientes, de uno en uno - digamos una fresa, luego un plátano, luego un poco de miel. Cada uno de ellos representa un byte de datos.
Paso 3: Mezclar con un multiplicador secreto (El FNV Prime)
Después de añadir cada ingrediente, pulsa el botón de licuar, pero aquí está el truco: la licuadora multiplica todo por un "número mágico" secreto llamado FNV Prime. Esto ayuda a mezclar todo muy bien.
Paso 4: Añade una pizca de magia (operación XOR)
Antes de añadir el siguiente ingrediente, se espolvorea un poco de polvo mágico (es la operación XOR). Es como darle la vuelta al sabor de formas inesperadas, asegurando que incluso los pequeños cambios marquen una gran diferencia.
Paso 5: Repetir hasta terminar
Sigue mezclando y espolvoreando magia después de cada nuevo ingrediente hasta que hayas procesado todo.
Paso 6: Batido final (Valor Hash)
Cuando haya terminado, vierta el batido. El sabor final (el valor hash) es exclusivo de esa combinación exacta de ingredientes. Si hubiera añadido un arándano más, el sabor sería completamente diferente.
La versión presentada aquí es la versión FNV-1a 32 bits mejorada. Si necesitas la versión original, también tengo una calculadora para ello: Calculadora de código hash FNV1-32 de Fowler-Noll-Vo