CRC-32 de «123456789»
0xCBF43926 0xCBF43926 para CRC-32/ISO-HDLC, la variante que usan ZIP, PNG, Ethernet y gzip.
Pega hexadecimal o texto y obtén las 63 variantes de CRC-8, CRC-16 y CRC-32. ¿Tienes una suma que no logras reproducir? Escríbela y la herramienta nombra la variante: MODBUS, CCITT-FALSE, XMODEM, KERMIT. Todo en tu navegador.
| Variante | Resultado | Poly | Init | RefIn/RefOut | XorOut |
|---|---|---|---|---|---|
| CRC-8 | |||||
| CRC-8/AUTOSAR | 0x2F | 0xFF | false / false | 0xFF | |
| CRC-8/BLUETOOTH | 0xA7 | 0x00 | true / true | 0x00 | |
| CRC-8/CDMA2000 | 0x9B | 0xFF | false / false | 0x00 | |
| CRC-8/DARC | 0x39 | 0x00 | true / true | 0x00 | |
| CRC-8/DVB-S2 | 0xD5 | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-A | 0x1D | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-B | 0x49 | 0x00 | false / false | 0xFF | |
| CRC-8/HITAG | 0x1D | 0xFF | false / false | 0x00 | |
| CRC-8/I-432-1 CRC-8/ITU | 0x07 | 0x00 | false / false | 0x55 | |
| CRC-8/I-CODE | 0x1D | 0xFD | false / false | 0x00 | |
| CRC-8/LTE | 0x9B | 0x00 | false / false | 0x00 | |
| CRC-8/MAXIM-DOW CRC-8/MAXIM · DOW-CRC | 0x31 | 0x00 | true / true | 0x00 | |
| CRC-8/MIFARE-MAD | 0x1D | 0xC7 | false / false | 0x00 | |
| CRC-8/NRSC-5 | 0x31 | 0xFF | false / false | 0x00 | |
| CRC-8/OPENSAFETY | 0x2F | 0x00 | false / false | 0x00 | |
| CRC-8/ROHC | 0x07 | 0xFF | true / true | 0x00 | |
| CRC-8/SAE-J1850 CRC-8/J1850 | 0x1D | 0xFF | false / false | 0xFF | |
| CRC-8/SMBUS CRC-8 | 0x07 | 0x00 | false / false | 0x00 | |
| CRC-8/TECH-3250 CRC-8/AES · CRC-8/EBU | 0x1D | 0xFF | true / true | 0x00 | |
| CRC-8/WCDMA | 0x9B | 0x00 | true / true | 0x00 | |
| CRC-16 | |||||
| CRC-16/ARC CRC-16 · CRC-16/IBM · CRC-16/LHA | 0x8005 | 0x0000 | true / true | 0x0000 | |
| CRC-16/CDMA2000 | 0xC867 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/CMS | 0x8005 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/DDS-110 | 0x8005 | 0x800D | false / false | 0x0000 | |
| CRC-16/DECT-R R-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0001 | |
| CRC-16/DECT-X X-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0000 | |
| CRC-16/DNP | 0x3D65 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/EN-13757 | 0x3D65 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/GENIBUS CRC-16/DARC · CRC-16/EPC · CRC-16/EPC-C1G2 · CRC-16/I-CODE | 0x1021 | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/GSM | 0x1021 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/IBM-3740 CRC-16/CCITT-FALSE · CRC-16/AUTOSAR | 0x1021 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/IBM-SDLC CRC-16/X-25 · CRC-16/X25 · CRC-16/ISO-HDLC · CRC-B · X-25 | 0x1021 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/ISO-IEC-14443-3-A CRC-A | 0x1021 | 0xC6C6 | true / true | 0x0000 | |
| CRC-16/KERMIT CRC-16/CCITT · CRC-16/CCITT-TRUE · CRC-16/V-41-LSB · CRC-CCITT | 0x1021 | 0x0000 | true / true | 0x0000 | |
| CRC-16/LJ1200 | 0x6F63 | 0x0000 | false / false | 0x0000 | |
| CRC-16/M17 | 0x5935 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/MAXIM-DOW CRC-16/MAXIM | 0x8005 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/MCRF4XX | 0x1021 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/MODBUS | 0x8005 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/NRSC-5 | 0x080B | 0xFFFF | true / true | 0x0000 | |
| CRC-16/OPENSAFETY-A | 0x5935 | 0x0000 | false / false | 0x0000 | |
| CRC-16/OPENSAFETY-B | 0x755B | 0x0000 | false / false | 0x0000 | |
| CRC-16/PROFIBUS CRC-16/IEC-61158-2 | 0x1DCF | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/RIELLO | 0x1021 | 0xB2AA | true / true | 0x0000 | |
| CRC-16/SPI-FUJITSU CRC-16/AUG-CCITT | 0x1021 | 0x1D0F | false / false | 0x0000 | |
| CRC-16/T10-DIF | 0x8BB7 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TELEDISK | 0xA097 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TMS37157 | 0x1021 | 0x89EC | true / true | 0x0000 | |
| CRC-16/UMTS CRC-16/BUYPASS · CRC-16/VERIFONE | 0x8005 | 0x0000 | false / false | 0x0000 | |
| CRC-16/USB | 0x8005 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/XMODEM CRC-16/ACORN · CRC-16/LTE · CRC-16/V-41-MSB · ZMODEM | 0x1021 | 0x0000 | false / false | 0x0000 | |
| CRC-32 | |||||
| CRC-32/AIXM CRC-32Q | 0x814141AB | 0x00000000 | false / false | 0x00000000 | |
| CRC-32/AUTOSAR | 0xF4ACFB13 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BASE91-D CRC-32D | 0xA833982B | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BZIP2 CRC-32/AAL5 · CRC-32/DECT-B · B-CRC-32 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0xFFFFFFFF | |
| CRC-32/CD-ROM-EDC | 0x8001801B | 0x00000000 | true / true | 0x00000000 | |
| CRC-32/CKSUM CRC-32/POSIX | 0x04C11DB7 | 0x00000000 | false / false | 0xFFFFFFFF | |
| CRC-32/ISCSI CRC-32C · CRC-32/BASE91-C · CRC-32/CASTAGNOLI · CRC-32/INTERLAKEN | 0x1EDC6F41 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/ISO-HDLC CRC-32 · CRC-32/ADCCP · CRC-32/V-42 · CRC-32/XZ · PKZIP | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/JAMCRC | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MEF | 0x741B8CD7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MPEG-2 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0x00000000 | |
| CRC-32/XFER | 0x000000AF | 0x00000000 | false / false | 0x00000000 | |
Úsalo cuando la documentación de tu dispositivo indique un polinomio que no está en la tabla de arriba.
Creado y verificado por el equipo de ingeniería de Go Tools.
0xCBF43926 0xCBF43926 para CRC-32/ISO-HDLC, la variante que usan ZIP, PNG, Ethernet y gzip.
0x4B37 0x4B37, con poly 0x8005, init 0xFFFF, entrada y salida reflejadas y sin XOR final.
0x29B1 0x29B1. Su nombre formal en el catálogo es CRC-16/IBM-3740: poly 0x1021, init 0xFFFF, sin reflexión.
63 Esta calculadora cubre 63 variantes catalogadas: 20 de ancho 8, 31 de ancho 16 y 12 de ancho 32.
Una comprobación de redundancia cíclica trata un bloque de datos como los coeficientes de un polinomio binario muy largo, lo divide entre un polinomio generador fijo con aritmética módulo 2 y se queda con el resto. Ese resto es la suma de verificación. La construcción se impuso porque la división se reduce a desplazamientos y XOR, algo que en hardware no cuesta prácticamente nada, y porque el álgebra ofrece garantías firmes en lugar de esperanzas estadísticas: un polinomio de 16 bits bien elegido detecta todos los errores de un solo bit, todos los de dos bits dentro de una longitud de bloque útil, cualquier número impar de bits invertidos y toda ráfaga de 16 bits corruptos consecutivos o menos.
Lo que vuelve confuso al CRC en la práctica es que el polinomio es solo uno de seis parámetros. Dos implementaciones pueden coincidir en el polinomio y aun así discrepar en todos los resultados, porque difieren en el valor inicial del registro, en si los bytes de entrada y el registro de salida llevan invertido el orden de bits, y en la constante que se aplica con XOR al valor final. Una variante de CRC es todo ese conjunto de parámetros, no el polinomio por sí solo: por eso un nombre como «CRC-16» no identifica casi nada por su cuenta, y por eso esta página muestra junto a cada resultado el polinomio, el valor inicial, las dos banderas de reflexión y el XOR final, con el ancho como encabezado de grupo.
Hay una salvedad que la tabla no puede mostrar: un polinomio de 16 bits detecta cualquier número impar de bits invertidos solo si x+1 lo divide. Eso se cumple en los dos que es más probable que te encuentres, 0x1021 y 0x8005, pero no en todos: CRC-16/T10-DIF y CRC-16/PROFIBUS están entre las excepciones.
// CRC-16/MODBUS: poly=0x8005, init=0xFFFF, refin/refout=true, xorout=0x0000
// Written in the reflected form, so the polynomial appears bit-reversed as 0xA001.
function crc16Modbus(bytes) {
let crc = 0xffff;
for (const byte of bytes) {
crc ^= byte;
for (let i = 0; i < 8; i++) {
crc = crc & 1 ? (crc >>> 1) ^ 0xa001 : crc >>> 1;
}
}
return crc;
}
crc16Modbus([0x01, 0x03, 0x00, 0x00, 0x00, 0x0a]); // 0xCDC5
// On the wire Modbus RTU sends the low byte first: ... 0x0A 0xC5 0xCD CRC-8, CRC-16 y CRC-32 se recalculan juntos mientras escribes. Sin un desplegable que adivinar antes de poder ver nada.
Escribe la suma de verificación que te dieron y se resaltan las variantes que la producen, de modo que identificar un algoritmo desconocido cuesta un paso en vez de veinte.
Cada fila muestra el nombre del catálogo RevEng más los alias que se usan sobre el terreno: CCITT-FALSE, CRC-16/IBM, CRC-32C, X-25 y demás.
El polinomio, el valor inicial, los dos indicadores de reflexión y el XOR final aparecen junto a cada resultado, para que puedas verificar la coincidencia contra una especificación.
Ancho, polinomio, init, reflexión y XOR final son editables, para polinomios que nunca llegaron a entrar en ningún catálogo.
El cálculo ocurre en tu navegador. Las tramas de producción y las imágenes de firmware no salen de la máquina.
123456789
CRC-32/ISO-HDLC = 0xCBF43926, CRC-16/MODBUS = 0x4B37, CRC-8/SMBUS = 0xF4
Todas las variantes de CRC del catálogo RevEng publican su resultado para la cadena ASCII 123456789. Eso convierte esta entrada en la autocomprobación estándar: si una biblioteca no coincide con la tabla de aquí, la equivocada es la biblioteca.
01 03 00 00 00 0A
CRC-16/MODBUS = 0xCDC5
Lectura de registros holding del esclavo 1. Modbus RTU añade primero el byte bajo del CRC, así que esta trama viaja por el cable como 01 03 00 00 00 0A C5 CD: una inversión que explica buena parte de las sumas que la gente no consigue cuadrar.
DEADBEEF
MODBUS = 0xC19B, CCITT-FALSE = 0x4097, XMODEM = 0xC457, KERMIT = 0x1915
Leído en modo Hex, así que son cuatro bytes y no los ocho caracteres de la cadena. Las cuatro variantes de CRC-16 más conocidas discrepan por completo sobre ellos. No hay nada roto: se diferencian en el valor inicial, la reflexión y el XOR final, no en su corrección.
123456789 con valor esperado 0x29B1
CRC-16/IBM-3740 (tu manual quizá la llame CRC-16/CCITT-FALSE)
Este es el caso para el que se hizo la calculadora. Tienes los datos y la suma que calculó otra persona, pero no el nombre de la variante, así que buscas el conjunto de parámetros que la reproduce.
Las tramas de protocolo son casi siempre hexadecimal. Usa texto solo cuando calcules la suma de una cadena literal, como el valor de autocomprobación 123456789.
En modo hexadecimal los separadores se ignoran, así que 01 03 00 00 00 0A, 0x01 0x03 y 010300 00000A se aceptan por igual.
La tabla está agrupada por ancho. Los nombres formales vienen del catálogo RevEng, con los alias que probablemente use el manual de tu equipo impresos debajo.
Si ya tienes una suma de verificación y quieres saber su variante, escríbela en el campo de valor esperado y lee la fila resaltada.
Si te dejas el modo texto, la calculadora procesa los caracteres ASCII de tu volcado hexadecimal y no los bytes que representa. Cambia al modo Hex: el recuento de bytes bajo el selector de modo te dice qué lectura obtuviste.
Text mode, input "01 03" -> 5 bytes: 30 31 20 30 33
Hex mode, input "01 03" -> 2 bytes: 01 03
Modbus RTU transmite primero el byte bajo del CRC. Una trama que termina en C5 CD lleva la suma 0xCDC5, no 0xC5CD.
expected 0xC5CD (bytes read in transmission order)
expected 0xCDC5 (bytes reassembled low-byte-first)
El CRC cubre los bytes que lo preceden. Volver a meter la trama entera, remolque incluido, produce un residuo y no la suma de verificación.
01 03 00 00 00 0A C5 CD <- trailer included
01 03 00 00 00 0A <- payload only
Hay treinta y una variantes catalogadas de 16 bits de ancho. Sin los otros cinco parámetros, el nombre no acota nada.
spec says: "trailer is a CRC-16"
spec says: "CRC-16/MODBUS, poly 0x8005, init 0xFFFF, refin/refout true"
Herramientas de Seguridad
Descifra AES en línea — GCM/CBC/CTR, frase de contraseña o clave sin procesar, detecta automáticamente el formato "U2FsdGVkX1" de OpenSSL y CryptoJS. 100 % en el navegador, las claves nunca salen de la página.
Herramientas de Seguridad
Cifrado AES online y gratuito — AES-128/192/256, GCM/CBC/CTR, frase de contraseña (PBKDF2) o clave sin procesar. Se ejecuta 100 % en tu navegador; nada se sube a un servidor.
Herramientas de Seguridad
Genera y verifica hashes bcrypt de contraseñas online — coste ajustable, prefijos $2b$/$2a$/$2y$. 100 % en tu navegador; tu contraseña nunca se sube.
Herramientas de Seguridad
Generador y verificador HMAC en línea gratis. Calcula HMAC-SHA256/SHA1/SHA384/SHA512 con claves en texto, hex o Base64 y salida Hex/Base64/Base64URL. 100 % en tu navegador: las claves nunca salen de la página.
Herramientas de Seguridad
Decodifica tokens JWT online con nuestro decodificador JWT gratis. Inspecciona encabezado, carga útil, firma, expiración y reclamaciones al instante. 100% navegador — tu token nunca sale del dispositivo. Sin registro ni rastreo.
Herramientas de Seguridad
Generador y codificador JWT gratis online. Construye el encabezado y la carga útil, firma con HS256, RS256 o ES256 al instante. 100% en el navegador — tu secreto y tu clave nunca salen de tu dispositivo.