Calculadora de sumas de verificación CRC-16
CifradoTodo se ejecuta en tu navegador: no se sube nada
Calcula la suma de verificación CRC-16 de cualquier texto. CRC-16 aparece en el trabajo industrial y de sistemas embebidos más a menudo que CRC-32: los dos bytes finales de una trama Modbus, la suma ROM de un dispositivo 1-Wire y la comprobación de trama en Bluetooth y X.25 lo usan. También es con diferencia la familia con más variantes: un mismo polinomio como 0x8005 o 0x1021, combinado con distintos valores iniciales, reflexión de bits y valores de XOR final, da más de treinta algoritmos incompatibles cuyos números no guardan relación entre sí. Aquí se recogen las nueve más comunes, cada una etiquetada con su uso y su origen. Comprueba cuál espera el otro sistema antes de cambiar: aquí es donde más se falla con las herramientas de CRC y donde más cuesta diagnosticarlo.
Funciones
- Nueve variantes habituales: ARC, Modbus, USB, MAXIM, CCITT-FALSE, XMODEM, KERMIT, X-25 y DNP
- Cada variante indica dónde se usa: las tramas Modbus, los dispositivos 1-Wire y las tramas X.25 necesitan cada una la suya
- Salida en hexadecimal (mayúsculas o minúsculas) o decimal
- El texto no ASCII se procesa como bytes UTF-8, igual que otras implementaciones
- Cada variante está anclada al valor de verificación del catálogo, así que los parámetros no se pueden escribir mal
- Se calcula en local; el contenido no sale del navegador
Cómo se usa
- Pega el contenido; el resultado aparece mientras escribes
- Elige la variante que use el otro sistema (para Modbus, CRC-16/MODBUS)
- Cambia entre hexadecimal y decimal, o a mayúsculas, según necesites
- Pulsa Copiar para llevarte la suma
Preguntas frecuentes
- ¿Por qué hay tantas variantes de CRC-16?
- Porque el 16 de CRC-16 solo dice que la suma es de 16 bits y nada más. Qué polinomio, qué valor inicial, si los bytes de entrada se reflejan y si el resultado se somete a XOR con una constante: esos cuatro parámetros los decidió cada fabricante por su cuenta a lo largo de los años, lo que produjo decenas de implementaciones incompatibles bajo un mismo nombre. ARC (también llamado IBM) fue el primero; Modbus, USB y X-25 son variantes suyas para sus propios contextos. Los nombres no dicen cuál es cuál, y por eso aquí cada entrada lleva su uso.
- ¿Cuál usa Modbus?
- CRC-16/MODBUS: polinomio 0x8005, valor inicial 0xFFFF, entrada y salida reflejadas y sin XOR final. Ocupa los dos últimos bytes de una trama Modbus RTU, con el byte bajo primero. Ten en cuenta que Modbus TCP no lo usa (la capa Ethernet de debajo se encarga de la integridad); solo los modos RTU y ASCII necesitan calcularlo a mano.
- ¿Cómo averiguo qué variante usa el otro sistema?
- Tres vías, por orden de fiabilidad. Primera, la documentación del protocolo, que suele indicar el polinomio y el valor inicial. Segunda, buscar un valor de verificación conocido: la entrada de prueba estándar es la cadena 123456789, y cada variante de aquí coincide con el valor registrado en el catálogo de CRC, así que puedes probarlas hasta que una encaje. Tercera, leer el código: la forma reflejada de 0x8005, que es 0xA001, apareciendo en el código casi siempre significa la familia ARC.
- ¿Por qué mi resultado no coincide con el del manual?
- Dos causas explican casi todos los casos. O la variante está mal —del mismo polinomio 0x8005, ARC da BB3D, Modbus da 4B37 y MAXIM da 44C2—, o el rango de bytes está mal. El CRC opera sobre un flujo de bytes, así que si pegas solo la carga útil mientras el otro lado calcula sobre la trama entera (dirección, código de función y datos), los resultados no pueden coincidir. Confirma que ambos lados cubren exactamente los mismos bytes.
Herramientas relacionadas
CRC-32
CifradoCalcula la suma de verificación CRC-32 de cualquier texto en seis variantes, con IEEE, Castagnoli y Koopman incluidas, y dónde se usa cada una.
Convertidor hex
CifradoConvierte entre hexadecimal y texto, aceptando 0x, \x, espacios y dos puntos, con el número de bytes en UTF-8. Todo en tu navegador.
Hash
CifradoCalcula resúmenes MD5, SHA-1, SHA-256, SHA-512 o MD4 de cualquier texto, en bytes UTF-8 para que coincidan con openssl. En tu navegador.
Base64
CifradoConvierte texto a Base64 y al revés, con UTF-8 correcto para acentos, chino y emoji. Todo se ejecuta en tu navegador: no se sube nada.
Codificar URL
CifradoEscapa texto a la forma %XX y lo devuelve, tratando una URL completa y un valor de parámetro como trabajos distintos. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.