Calculadora de código hash FNV1-32 de Fowler-Noll-Vo
Publicado: 18 de febrero de 2025, 0:15:31 UTC
Calculadora de código hash que utiliza la función hash Fowler-Noll-Vo 1 de 32 bits (FNV1-32) para calcular un código hash basado en la entrada de texto o la carga de un archivo.Fowler-Noll-Vo FNV1-32 Hash Code Calculator
La función hash de 32 bits FNV-1 forma parte de la familia de funciones hash Fowler–Noll–Vo (FNV), diseñada para realizar operaciones hash rápidas 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), que suele representarse como un número hexadecimal de 8 dígitos.
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 FNV-1 de Fowler-Noll-Vo
No soy matemático, pero intentaré explicar esta función hash usando una analogía que mis colegas no matemáticos puedan entender. Si prefieres una explicación científicamente correcta y matemáticamente aterradora, estoy seguro de que puedes encontrarla en otro lugar ;-)
En primer lugar, pensemos en el algoritmo FNV-1 como si fuera una receta para preparar un batido especial. Cada ingrediente que se añade (como frutas, leche o miel) representa un fragmento de datos, 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 cambio más pequeño en la receta (como agregar un arándano adicional) haga que el sabor del batido sea 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).
La forma en que el algoritmo FNV-1 hace esto es un proceso de varios pasos:
Paso 1: Comience con una base (base compensada)
Piense en esto como si estuviera vertiendo una base especial para batido en su licuadora. Esta base siempre es la misma, sin importar los ingredientes que agregue. En FNV-1, esto se llama "base de compensación", solo un número inicial elegante.
Paso 2: Agregue los ingredientes uno por uno (datos de procesamiento)
Ahora empieza a añadir los ingredientes, uno a la vez: digamos una fresa, luego un plátano y luego un poco de miel. Cada uno de ellos representa un byte de datos.
Paso 3: Combina con un multiplicador secreto (FNV Prime)
Después de agregar cada ingrediente, presiona el botón de mezclar, pero aquí está el truco: la licuadora multiplica todo por un "número mágico" secreto llamado FNV prime. Esto ayuda a mezclar muy bien las cosas.
Paso 4: Agrega una pizca de magia (Operación XOR)
Antes de añadir el siguiente ingrediente, se espolvorea un poco de polvo mágico (esta es la operación XOR). Es como cambiar el sabor de maneras inesperadas, lo que garantiza que incluso los cambios más pequeños hagan una gran diferencia.
Paso 5: Repetir hasta terminar
Continúa mezclando y espolvoreando magia después de cada nuevo ingrediente hasta que hayas procesado todo.
Paso 6: Smoothie final (valor hash)
Cuando hayas terminado, tira el batido. El sabor final (el valor hash) es exclusivo de esa combinación exacta de ingredientes. Si hubieras añadido un arándano más, el sabor sería completamente diferente.
La versión que se presenta aquí es la versión original de FNV-1 de 32 bits. También hay disponible una versión mejorada de FNV-1a de 32 bits: Calculadora de códigos Hash Fowler-Noll-Vo FNV1a-32