CRC-32 / ISO-HDLCPKZip · PNG · Ethernet
La implementación CRC-32 más común, también llamada CRC-32b. Utiliza la forma reflejada del polinomio 0x04C11DB7, es decir, 0xEDB88320. Tanto los bytes de entrada como los de salida se reflejan en bits (LSB primero), con el valor inicial y el XOR final establecidos en 0xFFFFFFFF.
Ampliamente utilizado por ZIP, gzip, imágenes PNG, tramas Ethernet (IEEE 802.3), PKCS#7 y muchos sistemas heredados. Esta es la variante de facto "CRC-32 predeterminada".
| Polinomio | 0x04C11DB7(normal) /0xEDB88320(reflejado) |
| Valor inicial | 0xFFFFFFFF |
| Reflexión de entrada | Sí (RefIn = verdadero) |
| Reflexión de salida | Sí (RefOut = verdadero) |
| XOR final | 0xFFFFFFFF |
| Verificar valor | 0xCBF43926(para "123456789") |
CRC-32C / CastagnoliiSCSI · NVMe · SCTP
Propuesta por G. Castagnoli y colegas en 1993, esta variante utiliza el polinomio 0x1EDC6F41 (forma reflejada 0x82F63B78). A la misma distancia de Hamming, ofrece una detección de errores en ráfaga más potente que el polinomio ISO-HDLC.
La aceleración de hardware está disponible a través de las instrucciones Intel SSE4.2 y ARM CRC32. Se utiliza ampliamente en protocolos de transporte y almacenamiento modernos como iSCSI, NVMe, Btrfs y SCTP.
| Polinomio | 0x1EDC6F41(normal) /0x82F63B78(reflejado) |
| Valor inicial | 0xFFFFFFFF |
| Reflexión de entrada | Sí (RefIn = verdadero) |
| Reflexión de salida | Sí (RefOut = verdadero) |
| XOR final | 0xFFFFFFFF |
| Verificar valor | 0xE3069283(para "123456789") |
CRC-32/MPEG-2MPEG-2 · DVB · ATSC
Utiliza el mismo polinomio 0x04C11DB7 que ISO-HDLC, pero ni la entrada ni la salida sonbit reflejado(MSB primero, big-endian). El valor inicial es 0xFFFFFFFF y el XOR final está deshabilitado (XorOut = 0x00000000).
Se utiliza principalmente para tablas PSI/SI en flujos de transporte MPEG-2 (PAT, PMT, NIT y tablas relacionadas), además de comprobaciones de integridad en sistemas de transmisión DVB y ATSC.
| Polinomio | 0x04C11DB7 |
| Valor inicial | 0xFFFFFFFF |
| Reflexión de entrada | No (RefIn = falso) |
| Reflexión de salida | No (RefOut = falso) |
| XOR final | 0x00000000(deshabilitado) |
| Verificar valor | 0x0376E6E7(para "123456789") |
CRC-32 / BZIP2BZip2 · AAL5 · DECT
Sus parámetros son casi idénticos a MPEG-2 (polinomio 0x04C11DB7, sin reflexión, valor inicial 0xFFFFFFFF). La única diferencia es unaXOR final con 0xFFFFFFFF, que cambia cada bit. También se conoce como CRC-32/AAL5 o CRC-32/DECT-B.
Utilizado por el formato de archivo comprimido BZip2 y el campo de suma de comprobación final del protocolo ATM AAL5.
| Polinomio | 0x04C11DB7 |
| Valor inicial | 0xFFFFFFFF |
| Reflexión de entrada | No (RefIn = falso) |
| Reflexión de salida | No (RefOut = falso) |
| XOR final | 0xFFFFFFFF |
| Verificar valor | 0xFC891918(para "123456789") |
UTF-8 TextoPredeterminado · General
Trata la entrada como unUTF-8string, lo convierte a bytes y luego calcula CRC32. Este es el modo más común para texto sin formato, código fuente, JSON y contenido similar.
Nota: el mismo texto codificado con un juego de caracteres diferente, como GBK o UTF-16, produce un flujo de bytes diferente y, por lo tanto, un valor CRC32 diferente. Esta herramienta siempre utiliza UTF-8.
| Mejor para | Texto sin formato, código fuente, JSON, XML |
| Ejemplo | "Hola" →48 65 6C 6C 6F(5 bytes) |
| CJK Caracteres | La mayoría de los caracteres CJK usan 3 bytes en UTF-8 |
HexadecimalDatos binarios · Marcos de protocolo
Trata la entrada como sin formatoliterales de bytes hexadecimales. Se ignoran los espacios y los saltos de línea. Cada dos caracteres hexadecimales se convierten en un byte (00–FF).
Útil cuando necesita comprobaciones CRC para datos binarios exactos, como marcos de red, fragmentos de imágenes de firmware o volcados de memoria. Puede pegar la salida de Wireshark o del volcado hexadecimal directamente.
| Formato | Solo0-9ya-f / A-Festán permitidos |
| Recuento de caracteres | Debe ser par (2 caracteres por byte) |
| Ejemplo | 48656C6C6F= "Hola" (5 bytes) |
| Espacio en blanco | Se ignora automáticamente.48 65 6Ces lo mismo que48656C |
Base64Binario codificado · Certificados · Imágenes
Trata la entrada como unCadena codificada en Base64, lo decodifica en bytes sin formato y luego calcula CRC32. Útil para certificados PEM, cargas útiles JWT, URI de datos y otro contenido Base64.
Admite el alfabeto Base64 estándar (A-Z a-z 0-9 + /). El personaje de relleno=es opcional. Base64 seguro para URL (-_) no es compatible.
| Alfabeto | A-Z a-z 0-9 + / = |
| Ejemplo | SGVsbG8=→ "Hola" (5 bytes) |
| URL seguro | No compatible. Reemplazar-→+y_→/primero |
| ⚠ 1 carácter | No válido: 6 bits no son suficientes para formar 1 byte (se requieren 8 bits) |
| 2 Caracteres | Decodifica a1 byte(entrada mínima válida) |
| 3 Caracteres | Decodifica a2 bytes |
| 4 Caracteres | Decodifica a3 bytes(el patrón se repite cada 4 caracteres) |
HexadecimalMás común · Predeterminado
Muestra el valor como un número hexadecimal en mayúscula de 8 dígitos con el prefijo0x. Cada carácter representa 4 bits, para un total de 32 bits. Este es el formato estándar utilizado en la mayoría de las herramientas, código fuente y documentación.
En comparación con la salida decimal, el formato hexadecimal facilita la inspección de los límites de bytes y hace coincidir los volcados de memoria y los campos de protocolo de forma más natural.
| Ejemplo | 0xCBF43926 |
| Longitud | 8 caracteres hexadecimales = 32 bits |
| Base | Base 16 (0-9, A-F) |
| Mejor para | Código, documentación, Wireshark, editores hexadecimales |
DecimalEntero de 32 bits sin signo
Muestra la suma de verificación como unentero decimal de 32 bits sin signoen el rango 0–4,294,967,295 (2³²−1). Algunos lenguajes y herramientas comparan valores CRC en forma decimal y los campos de la base de datos suelen almacenar esta representación.
Nota: Los resultados de CRC32 deben tratarse como enteros sin signo. En tipos int con signo como Java o C#, los valores superiores a 0x7FFFFFFF pueden parecer negativos y deben convertirse a uint o a una representación sin signo más amplia.
| Ejemplo | 3421780262 |
| Rango | 0–4,294,967,295 |
| Nota | Para Java int, convertir con& 0xFFFFFFFFL |
| Mejor para | Bases de datos, valores de estructura de Python, comparación numérica |
BinarioAnálisis de nivel de bits
Muestra la suma de comprobación como una cadena binaria de 32 bits con el prefijo0b. Cada carácter es 0 o 1, está alineado con el bit más significativo de la izquierda y se completa con ceros a la izquierda cuando es necesario.
Principalmente útil para comprender el algoritmo CRC interno, estudiar la división polinomial, enseñar y escenarios integrados que necesitan procesamiento de suma de comprobación a nivel de bits.
| Ejemplo | 0b11001011…00100110 |
| Longitud | Fijo en 32 bits con relleno de ceros a la izquierda |
| Bit más alto | El bit 31 (MSB) aparece en el extremo izquierdo |
| Mejor para | Análisis de algoritmos, enseñanza, depuración integrada |
OctalUnix · Sistemas de archivos
Muestra la suma de verificación como un número octal de 11 dígitos con el prefijo0o. Se necesitan como máximo 11 caracteres octales para 32 bits porque 3×11 = 33 > 32. Cada dígito octal representa 3 bits.
La salida octal es poco común en los flujos de trabajo CRC modernos, pero todavía aparece en algunas herramientas Unix, cadenas de herramientas de firmware integradas y especificaciones de protocolos de comunicación más antiguos.
| Ejemplo | 0o31572031046 |
| Longitud | Hasta 11 dígitos octales |
| Por dígito | Representa 3 bits (0-7) |
| Mejor para | Herramientas Unix, especificaciones de protocolo más antiguas |