Calculadora de código hash CRC-32B
Publicado: 17 de febrero de 2025, 18:23:53 UTC
Calculadora de código hash que utiliza la función hash CRC-32B (verificación de redundancia cíclica de 32 bits, variante B) para calcular un código hash basado en la entrada de texto o la carga de un archivo.CRC-32B Hash Code Calculator
La comprobación de redundancia cíclica (CRC) es un código de detección de errores que se utiliza habitualmente para detectar cambios accidentales en los datos sin procesar. Aunque técnicamente no es una función hash criptográfica, a CRC-32 se le suele denominar hash debido a su capacidad de producir una salida de tamaño fijo (32 bits) a partir de una entrada de longitud variable. La versión que se presenta en esta página es la variante CRC-32B, que en realidad es solo una peculiaridad del lenguaje PHP que invierte los bits (little-endian vs big-endian en el CRC-32 original).
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 CRC-32B
No soy matemático, pero intentaré explicar esta función hash con una analogía sencilla. A diferencia de muchas de las funciones hash criptográficas, no es un algoritmo especialmente complicado, por lo que probablemente no habrá ningún problema ;-)
Imagina que estás enviando una carta por correo, pero te preocupa que se dañe antes de que llegue al destinatario. Según el contenido de la carta, calculas una suma de comprobación CRC-32 y la escribes en el sobre. Cuando el destinatario recibe la carta, también puede calcular la suma de comprobación y ver si coincide con lo que escribiste. Si es así, la carta no sufrió daños ni modificaciones durante el envío.
La forma en que CRC-32 hace esto es un proceso de cuatro pasos:
Paso 1: Agrega algo de espacio adicional (relleno)
- CRC agrega un poco de espacio extra al final del mensaje (como si se tratara de cacahuetes de embalaje en una caja).
- Esto ayuda a detectar errores más fácilmente.
Paso 2: La regla mágica (el polinomio)
- CRC-32 utiliza una "regla mágica" especial para medir los datos.
- Piense en esta regla como un patrón de protuberancias y ranuras (este es el polinomio, pero no se preocupe por esa palabra).
- La "regla" más común para CRC-32 es un patrón fijo.
Paso 3: Deslizar la regla (proceso de división)
- Ahora CRC desliza la regla sobre el mensaje.
- En cada punto, comprueba si las protuberancias y las ranuras están alineadas.
- Si no se alinean, CRC toma nota (esto se hace usando XOR simple, como encender o apagar interruptores).
- Sigue deslizándose y activando interruptores hasta que llega al final.
Paso 4: El resultado final (la suma de comprobación)
- Después de deslizar la regla por todo el mensaje, queda un número pequeño (de 32 bits de largo) que representa los datos originales.
- Este número es como una huella digital única para el mensaje.
- Esta es la suma de comprobación CRC-32.
La versión que se presenta en la página es la variante CRC-32B, que es principalmente una peculiaridad de PHP que cambia el orden de los bits (little-endian vs big-endian). Probablemente deberías usar esta versión solo si necesitas específicamente compatibilidad con otra aplicación PHP que la use.
También tengo calculadoras para las otras variantes: