También disponible en: English · Português · Français · العربية
Calculadora CRC
Calcula un CRC con cualquiera de los 113 algoritmos del catálogo estándar y averigua qué entiende realmente tu formato por CRC-32.
Qué es un CRC
Una comprobación de redundancia cíclica es un número corto calculado a partir de un bloque de datos para que quien lo reciba pueda saber si llegó intacto. No es un hash ni una firma: está pensado para cazar los accidentes que producen la transmisión y el almacenamiento —bits volteados, bytes perdidos, una trama truncada— y es tan barato que Ethernet, zip, PNG, gzip y muchísimos buses de hardware calculan uno sobre todo lo que pasa.
Lo importante es entender que un CRC no es un algoritmo. Es una familia descrita por seis parámetros: el ancho del registro, el polinomio, con qué arranca el registro, si se reflejan los bits de entrada, si se reflejan los de salida y un valor que se aplica con XOR al final. Cambia cualquiera y obtienes un CRC distinto e igual de válido. El catálogo estándar recoge 113 realmente en uso, de tres bits de ancho a ochenta y dos.
Esta calculadora implementa el algoritmo parametrizado y trae los 113, así que puedes calcular el que tu formato especifica de verdad y no el que una biblioteca decidió llamar CRC-32.
Cómo se usa
- Dale tu entrada. Texto por defecto, o cambia a bytes hexadecimales si trabajas desde un volcado de paquetes. Por defecto va la cadena 123456789, que es el vector de prueba del propio catálogo, así que el primer resultado que ves puedes buscarlo en la tabla publicada.
- Elige el algoritmo. Busca por nombre, por alias o por polinomio. Escribir CRC-32 te lleva a ISO-HDLC, que es lo que significa ese nombre a secas, y escribir un polinomio saca todo lo que lo usa.
- Mira el panel de comparación. Cuando el algoritmo elegido comparte polinomio con otros, aparecen todos con lo que devuelve cada uno para tu entrada. Suele ser la forma más rápida de averiguar cuál usa de verdad el sistema que estás depurando.
Cinco algoritmos distintos se llaman CRC-32
Doce de los algoritmos catalogados son de treinta y dos bits, y cinco de ellos comparten el polinomio 0x04C11DB7: ISO-HDLC, BZIP2, CKSUM, JAMCRC y MPEG-2. Solo se diferencian en el registro inicial, las banderas de reflexión y el XOR final, y devuelven cinco números distintos para la misma entrada. Sobre la cadena 123456789 dan 0xCBF43926, 0xFC891918, 0x765E7680, 0x340BC6D9 y 0x0376E6E7 respectivamente.
El catálogo registra el nombre a secas CRC-32 como alias únicamente de ISO-HDLC, que es el que usan zip, gzip y PNG. Pero una especificación, una hoja de datos o un ticket de soporte que diga CRC-32 puede referirse a cualquiera de los cinco, y nada en el valor resultante indica cuál lo produjo. Si dos sistemas discrepan sobre una suma por lo que parece una constante, esto es lo primero que conviene descartar: es mucho más frecuente que un error de transmisión real.
La misma trampa está un nivel más abajo, y allí es peor. El catálogo recoge treinta y un algoritmos de dieciséis bits, y once de ellos comparten el polinomio 0x1021, entre ellos XMODEM, KERMIT, IBM-3740 e IBM-SDLC. Otros siete comparten 0x8005, incluidos ARC, MODBUS y USB. Así que un CRC de dieciséis bits identificado solo por su polinomio es ambiguo de once maneras, y por eso la única forma fiable de nombrar uno es dar los seis parámetros. Justo para eso existe el catálogo.
Cómo se verifica esto y qué significa la columna de clase
El catálogo publica un valor de comprobación para cada algoritmo: el resultado de aplicarlo a la cadena 123456789. Eso convierte los datos de referencia en su propia suite de pruebas. Este motor se verifica reproduciendo los 113 valores publicados, no coincidiendo con otra biblioteca: coincidir con la implementación de otro solo demostraría que dos personas tomaron las mismas decisiones, mientras que reproducir las definiciones demuestra que se siguieron los parámetros.
Cada algoritmo cuyo ancho es un número entero de bytes publica además un residuo, una segunda constante independiente que describe qué contiene el registro tras leer un mensaje válido con su suma añadida. También se reproducen, así que la mayoría de las entradas quedan comprobadas dos veces por propiedades distintas. Hay además un control negativo: un juego de parámetros deliberadamente corrompido tiene que fallar su valor de comprobación, o toda la comparación pasaría también para un motor que se limitara a devolver la respuesta esperada.
Una columna del catálogo merece conservarse y suele perderse al copiar tablas. Cada entrada está marcada como attested, confirmed, academic o third-party, y eso dice cuán bien se han verificado los seis parámetros contra una implementación en funcionamiento, no la calidad del algoritmo. Attested significa que alguien los contrastó con salida real; academic, que vienen de un artículo o una norma sin implementación a mano. Sesenta de los 113 son attested y treinta y ocho academic, así que un buen tercio del catálogo son parámetros que nadie ha confirmado contra código en ejecución.
Dos límites honestos. Un CRC está diseñado contra la corrupción accidental y no protege de ninguna manipulación deliberada: quien pueda cambiar tus datos puede recalcular la suma, así que un CRC nunca es una medida de seguridad. Y aquí se calcula bit a bit, por claridad y para admitir los anchos raros; eso va bien para cualquier cosa que pegues en un cuadro de texto, y no es como calcularías la suma de un gigabyte.
¿Por qué es gratis?
Funciona en tu navegador. Desplazar un registro no es trabajo que necesite un servidor, así que no hay nada que pagar ni cuenta que crear.
Nada de lo que pegas se sube, se guarda ni se registra. Los datos a los que calculas la suma suelen ser una trama o un archivo de un sistema real, y la forma fiable de mantenerlos en privado es no recibirlos nunca.