Calculadora checksum BSD
El texto «abc» da una suma BSD de 16556, o 40ac en hexadecimal, en 1 bloque: el mismo par que imprime el antiguo comando sum de Unix en modo BSD. Útil para cotejar scripts heredados, etiquetas de cinta y ejercicios de manual. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- abc
- Resultado
- 40ac
- Suma de verificación
- 16 556
- Hex
- 40ac
- Decimal
- 16 556
El algoritmo clásico BSD sum es el checksum de dieciséis bits por rotación y suma que empleaba el histórico comando Unix sum en modo BSD (a menudo invocado como sum -r en sistemas GNU). A diferencia de las comprobaciones de redundancia cíclica, actualiza un único registro de dieciséis bits rotándolo un bit a la derecha y sumando cada byte del mensaje, y después informa un recuento de bloques en unidades de mil veinticuatro bytes. Ingenieros que comparan etiquetas de cinta heredadas, estudiantes que reproducen la salida de sum de un libro y equipos de soporte que verifican fragmentos de texto frente a scripts antiguos suelen necesitar el mismo par determinista: el valor de checksum sin signo y la columna de bloques. Esta herramienta de checksum BSD acepta texto no vacío, lo codifica como UTF-8, ejecuta ese bucle de rotar-y-sumar y devuelve el valor de dieciséis bits en decimal y cuatro dígitos hexadecimales en minúsculas junto con el recuento de bloques, la etiqueta del algoritmo, la longitud en bytes y un resumen breve.
Qué calcula el BSD sum clásico y por qué importa el recuento de bloques
El checksum BSD trata cada mensaje como una secuencia de bytes y mantiene un acumulador de dieciséis bits que empieza en cero. Por cada byte, el registro se rota primero un bit a la derecha dentro de dieciséis bits —el bit menos significativo pasa al bit alto— y después se suma el valor del byte, enmascarando el resultado otra vez a dieciséis bits. Cuando el flujo termina, ese entero sin signo es la columna de checksum de la salida clásica de sum.
Junto a ella, la herramienta indica cuántos bloques de mil veinticuatro bytes ocupa el mensaje, mediante división por techo de la longitud UTF-8: cualquier carga no vacía de uno a mil veinticuatro bytes produce un bloque, el siguiente kilobyte inicia un segundo bloque, y así sucesivamente.
Como BSD sum no es resistente a colisiones ni está claveado, trátelo como comprobación rápida de integridad o de trama legada, no como prueba de autenticidad; prefiera digests de la familia SHA cuando la intención de búsqueda sea el hash criptográfico y no el checksum clásico de rotar-y-sumar.
Dónde sigue siendo útil una suma BSD
Autores de sistemas legados y estudiantes de historia de Unix usan una calculadora de checksum BSD para verificar los pasos de rotar-y-sumar calculados a mano frente a sum -r sin instalar un entorno coreutils completo en cada lenguaje. Las plataformas educativas y los plugins LMS necesitan un oráculo determinista que rechace la entrada vacía en lugar de devolver ceros para el mensaje vacío, de modo que los autoevaluadores distingan respuestas ausentes de un checksum real.
Los sitios de contenido que posicionan por checksum BSD, checksum del comando sum o sum clásico de Unix se benefician de una herramienta en vivo cuya ruta gratuita coincide byte a byte con la automatización de pago sobre el mismo módulo puro. Los fallos de validación no consumen saldo tras el rechazo.
Combine con landings de sum System V, CRC-16 o hash criptográfico solo cuando la intención de búsqueda vaya más allá del rotar-y-sumar BSD clásico: mantenga esta página centrada en BSD sum para que la intención SEO siga nítida y no canibalice las landings de Adler-32 o CRC-16.
Qué puede hacer con ella
Verificación legada de sum -r
Reproduzca el checksum BSD clásico y el recuento de bloques de 1024 bytes para una carga de texto corta al migrar scripts que aún imprimen el par histórico de sum -r.
Preguntas frecuentes
¿Con qué algoritmo coincide esta herramienta?
El BSD sum clásico del histórico Unix sum y de GNU coreutils sum -r: por cada byte, rota el registro de dieciséis bits un bit a la derecha y luego suma el byte; el recuento de bloques es ceil(length/1024).
¿Qué ocurre si el texto está vacío?
Se exige una cadena no vacía; la entrada vacía no se trata como un checksum correcto de cero con cero bloques.
¿Es gratuita la calculadora de checksum BSD?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Es BSD sum lo mismo que System V sum o CRC-16?
No. System V sum (-s) usa otra acumulación y bloques de 512 bytes. CRC-16 usa un registro polinómico. Esta herramienta implementa solo el rotar-y-sumar BSD clásico.
¿Qué significa el número de bloques del resultado?
Es la cantidad de bloques de 1024 bytes que ocupa el texto codificado en UTF-8, redondeada hacia arriba. De 1 a 1024 bytes cuenta como un bloque, y el siguiente kilobyte empieza un segundo bloque.
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/bsd-sum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"abc"}'const res = await fetch("https://api.kit.forhosting.com/enc/bsd-sum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "abc"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/bsd-sum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "abc"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/bsd-sum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"abc"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"abc"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/bsd-sum", 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": "abc"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.bsd_sum",
"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
La entrada vacía se rechaza con invalid_input para que quien llama no confunda un campo ausente con el informe cero-cero del fichero vacío del comando clásico. La ruta gratuita del navegador y la API de prepago comparten un único módulo puro, de modo que los ejercicios de aula y las canalizaciones de producción coinciden siempre en el checksum y los bloques para la misma cadena.
Contrato de entrada, errores de cadena vacía y forma JSON de la respuesta
La cadena se codifica como UTF-8 antes del bucle BSD, de forma que los caracteres multi-byte aportan cada unidad de código exactamente como lo haría un sum orientado a ficheros ante el mismo flujo UTF-8. La entrada vacía se rechaza a propósito en lugar de devolver el par teórico del fichero vacío cero cero, para que la experiencia de producto y los autoevaluadores distingan respuestas ausentes de un checksum real. Fije tanto un camino de éxito como el error de entrada vacía en la integración continua para que cambios accidentales de dirección de rotación o de tamaño de bloque no se publiquen sin aviso. Los campos nulos opcionales se omiten en lugar de emitirse como null, de acuerdo con el contrato del renderizador declarativo para formularios web limpios. Envíe un cuerpo JSON con un único campo de cadena obligatorio llamado text: cualquier secuencia no vacía de caracteres que desee sumar. Los alias input, value, s, data, message y payload se aceptan para el mismo campo, de modo que los stubs de SDK y los envíos de formulario sigan siendo flexibles. Si falta text, el valor no es una cadena o la cadena está vacía, la petición falla con invalid_input y un mensaje claro de que se exige una cadena no vacía; esos fallos no se facturan en la API de prepago. En caso de éxito el cuerpo incluye result y hex con el mismo checksum hexadecimal de cuatro dígitos en minúsculas; checksum y decimal con el entero sin signo de dieciséis bits; blocks con el recuento de bloques de mil veinticuatro bytes; algorithm fijo en BSD sum; input_bytes igual a la longitud UTF-8; text repitiendo la entrada; y message resumiendo el recuento de bytes, el valor decimal, el hex y los bloques.
Dónde aporta valor una API de checksum BSD y cómo se tarifica
Use la herramienta gratuita en el navegador para comprobaciones puntuales; use la API KIT de prepago desde backends, funciones serverless y SDK cuando necesite un contrato estable con saldo a $0.002 por elemento correcto. Mantenga las cargas en tamaños de texto ordinarios adecuados a una llamada de ítem en un Worker isolate; esta herramienta es para cadenas cortas y fragmentos de protocolo, no para binarios de varios megabytes.
Casos de integración
Demostraciones de rotar-y-sumar en clase
El profesorado muestra cómo una rotación derecha de dieciséis bits más una suma produce los fixtures conocidos abc y Hello sin instalar coreutils en cada máquina del alumnado.
Fixtures CI para helpers de integridad legada
Las canalizaciones fijan salidas deterministas de BSD sum en decimal, hex y blocks más el error de entrada vacía para que cambios accidentales de rotación o tamaño de bloque fallen al instante.
Preguntas técnicas
¿Cómo calculo un checksum BSD de un texto?
Envíe JSON con un campo de cadena no vacío llamado text. La API codifica la cadena en UTF-8, ejecuta el bucle clásico BSD sum de rotar-y-sumar y devuelve el valor de dieciséis bits en decimal y cuatro dígitos hex en minúsculas más el recuento de bloques de 1024 bytes.