Checksum Internet (RFC 1071)
La palabra hello da el checksum de Internet bc2d: sus 5 bytes se agrupan en palabras de 16 bits, se suman devolviendo los acarreos y la suma se invierte. Pegue una cabecera en hexadecimal para confirmar el checksum de IPv4, TCP o UDP. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- hello
- Modo de cálculo
- Text
- Suma de verificación
- bc2d
- Suma de verificación de Internet (entero)
- 48 173
- Bytes
- 5
- Algoritmo
- Internet checksum (RFC 1071)
El checksum de Internet es el residual de dieciséis bits en complemento a uno definido en el RFC 1071 y usado en IPv4, TCP y UDP para que los receptores detecten corrupción accidental de cabeceras y cargas útiles. Esta herramienta acepta texto plano (serializado como UTF-8) o un volcado de bytes en hexadecimal, pliega los bytes como palabras de dieciséis bits big-endian con reenvío de acarreo y devuelve el complemento a uno como cadena hex de cuatro dígitos en minúsculas más el entero sin signo equivalente. La entrada vacía es válida y produce ffff, el complemento natural de una suma cero.
Qué es el checksum de Internet RFC 1071 y cómo se forman las palabras
El RFC 1071 especifica un residual de integridad sencillo: trate el mensaje como una secuencia de palabras de dieciséis bits en orden de bytes de red, súmelas con aritmética de complemento a uno de modo que los acarreos se plieguen de nuevo en los dieciséis bits bajos, y tome el complemento a uno de esa suma. El resultado es un valor de dieciséis bits que suele mostrarse como cuatro dígitos hexadecimales. Esta calculadora de checksum de Internet implementa exactamente ese plegado.
En modo text la cadena de entrada se codifica primero como UTF-8 para que los caracteres multibyte aporten sus bytes reales en el cable; en modo hex la cadena se interpreta como octetos crudos tras eliminar espacios en blanco, dos puntos, guiones, guiones bajos y prefijos opcionales cero-x. Las palabras se forman big-endian: el primer byte de cada par es la mitad alta y el segundo la mitad baja, igual que se disponen las cabeceras IP, TCP y UDP en el cable.
Si la longitud en bytes es impar, el byte final se trata como la mitad alta de una palabra con byte bajo cero, según la sección 4.1 del RFC, de modo que cada byte participa sin inventar datos extra más allá de un único relleno cero. La carga vacía produce una suma cero cuyo complemento a uno es ffff, la identidad que a menudo se usa cuando un campo no se utiliza.
El algoritmo no es criptográfico a propósito: es barato, detecta muchos cambios accidentales de bits y pegados truncados, y es el residual que ya esperan enrutadores y pilas. No es CRC-32, ni Fletcher-32, ni un miembro de una familia de hashes. Si una herramienta de terceros discrepa sobre los mismos bytes, casi siempre usa empaquetado little-endian, otra regla de relleno, un polinomio CRC u otra codificación de los mismos caracteres.
Qué puede hacer con ella
Verificación de cabeceras IP, TCP y UDP
Recalcule el residual RFC 1071 sobre un volcado hex de cabecera o pseudoencabezado pegado para confirmar campos de checksum IPv4, TCP o UDP sin una pila de red completa.
Preguntas frecuentes
¿Cómo se calcula un checksum de Internet (RFC 1071)?
El modo predeterminado es text (bytes UTF-8). Ponga mode en hex para octetos crudos.
¿Cuál es la diferencia entre el modo text y el modo hex?
El modo text codifica la cadena en UTF-8 y calcula el checksum sobre esos bytes. El modo hex analiza octetos hexadecimales (se permiten espacios, dos puntos, guiones y 0x).
¿El checksum de Internet es un hash criptográfico?
No. El RFC 1071 detecta corrupción accidental con rapidez y coincide con pilas IP/TCP/UDP; no está diseñado para resistir colisión o falsificación deliberada. Use herramientas de la familia SHA cuando necesite un digest criptográfico.
¿Por qué mi resultado no coincide con el de otra herramienta?
Casi siempre la otra herramienta empareja los bytes en orden inverso, rellena de otra forma un último byte suelto, usa un CRC o codifica los caracteres de otra manera. Aquí el primer byte de cada pareja es la mitad alta, como en las cabeceras IP, TCP y UDP.
¿Por qué una entrada vacía da ffff?
Sin bytes, la suma es cero, y el complemento a uno de cero es ffff. Devolver ese valor estable en lugar de un error ayuda cuando se calcula el checksum de datos opcionales que pueden venir vacíos.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/internet-checksum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/internet-checksum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/internet-checksum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/internet-checksum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/internet-checksum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "hello"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.internet_checksum",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
El hex mal formado—número impar de nibbles o caracteres no hex tras quitar espacios, dos puntos, guiones y prefijos opcionales cero-x—provoca invalid_input sin facturar. Ninguna llamada de red, sal aleatoria ni reloj de pared intervienen en el cálculo al precio base publicado $0.002.
Contrato de entrada, modo text frente a hex y campos de respuesta
El modo opcional mode elige la interpretación: text (predeterminado) codifica la cadena como UTF-8; hex analiza octetos hexadecimales. La cadena vacía se permite a propósito: las canalizaciones que suman campos opcionales necesitan un residual ffff estable en lugar de un fallo duro. Mode repite el modo resuelto, algorithm es siempre la etiqueta Internet checksum con RFC 1071 entre paréntesis, y rfc es siempre la cadena 1071 para que ejemplos OpenAPI y respuestas de soporte citen el perfil sin ambigüedad. No hay conmutador de modo para CRC, Fletcher ni digests criptográficos: use una capacidad dedicada cuando esa sea la intención de búsqueda para que cada página de destino se mantenga enfocada. Envíe un cuerpo JSON con el campo obligatorio text igual a la cadena cuya suma de verificación desea calcular. Se aceptan los alias input, value, s, string, content y data para que formularios antiguos y clientes breves sigan enlazando. Los números finitos y los enteros grandes se convierten a cadena antes de procesar; objetos, arrays, booleanos, null, Infinity y NaN provocan invalid_input y no se facturan. Cuando la longitud resultante en bytes es cero, la respuesta pone empty en true, checksum en ffff, checksum_int en sesenta y cinco mil quinientos treinta y cinco, y bytes en cero. Con entrada no vacía empty es false, bytes iguala la longitud de la carga, checksum es el residual hex de cuatro dígitos en minúsculas sin prefijo cero-x, y checksum_int es el mismo valor como entero de dieciséis bits sin signo, útil en lenguajes que prefieren números a cadenas. En modo hex, tras quitar separadores, los caracteres restantes deben ser un número par de dígitos hexadecimales; cualquier otro carácter o un número impar de nibbles es hex mal formado y falla con invalid_input.
Dónde una API de checksum de Internet aporta valor
Los ingenieros de red pegan volcados cortos de cabecera en una calculadora de checksum de Internet cuando necesitan recalcular el checksum de cabecera IPv4 o un residual TCP y UDP sobre un pseudoencabezado más segmento sin levantar una pila completa. Los equipos de soporte recalculan checksums a partir del hex del ticket para confirmar que un marco pegado no se truncó ni se reespació en tránsito. Los trabajos de integración continua fijan vectores conocidos como la cadena UTF-8 hello y un volcado hex multibyte clásico para que cualquier deriva accidental de endianness o de la regla de relleno falle el build de inmediato. Los laboratorios educativos usan el mismo endpoint para mostrar que invertir un bit cambia los cuatro dígitos hex, ilustrando la detección de errores sin introducir maquinaria criptográfica ni herramientas de paquetes en contenedor. Como la implementación es parse pura de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente; la validación fallida no consume saldo. Mantenga las cargas bajo el techo de caracteres documentado, trate el campo checksum como destino canónico de pegado, y obtendrá valores RFC 1071 reproducibles para documentación, SDK, workers en el borde y demostraciones de aula sin levantar un servicio de checksum aparte.
Casos de integración
Vectores golden de CI para código de protocolo
Fije fixtures de texto y hex (incluido vacío → ffff) para que la integración continua detecte deriva de endianness, regla de relleno o codificación UTF-8 en los ayudantes de checksum.
Demostraciones de aula y tickets
Muestre a estudiantes y operadores cómo editar un byte cambia el checksum de Internet de cuatro dígitos con el widget gratuito del navegador o una sola llamada API.
Preguntas técnicas
¿Qué ocurre con la entrada vacía?
La carga vacía es válida. La respuesta pone empty en true, checksum en ffff, checksum_int en 65535 y bytes en 0. Si falta text o no es cadena, se produce invalid_input.
¿Cuánto cuesta la herramienta de checksum de Internet?
El widget del navegador es gratuito. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada exitosa; la entrada inválida no se factura.