Suma System V
La palabra hello da la suma 532 y 1 bloque, exactamente lo que imprime sum -s en Unix. Pegue un texto para reproducir la cifra clásica de System V, no la variante BSD, en scripts heredados, documentación y clases. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- hello
- Suma de verificación
- 532
- Bloques
- 1
- Número de bytes
- 5
- Algoritmo
- System V sum (sum -s)
System V sum es el algoritmo alternativo de suma de control de archivos que imprime la utilidad clásica sum de Unix cuando se usa el conmutador -s, la vía habitual en sistemas derivados de System V y aún disponible en GNU coreutils. A diferencia de los hashes criptográficos, produce un residuo compacto de dieciséis bits más un recuento de bloques de quinientos doce bytes, pensado para comprobaciones rápidas de integridad en cargas cortas y scripts heredados que aún analizan la salida de sum. Esta capacidad acepta una cadena de texto, la codifica como UTF-8, aplica los mismos pasos de acumulación y plegado que sum -s aplica a los bytes de un archivo, y devuelve la suma de control junto con el número de bloques y la longitud en bytes. La entrada vacía se acepta a propósito y se informa con claridad: checksum cero, cero bloques y un aviso explícito de vacío para que la automatización no confunda una carga en blanco con un campo ausente.
Qué es System V sum y en qué se diferencia de BSD sum y de los digests modernos
El algoritmo System V acumula cada byte de entrada en un total corriente y luego pliega ese total a dieciséis bits sumando la mitad alta a la mitad baja dos veces, de forma que el desbordamiento del primer plegado lo absorbe el segundo. El resultado es un entero no negativo en el rango de cero a sesenta y cinco mil quinientos treinta y cinco, que históricamente se imprimía como checksum decimal junto a un recuento de bloques.
Los bloques no son el tamaño lógico de registro de una base de datos; son unidades de quinientos doce bytes redondeadas hacia arriba, de modo que una cadena de cinco bytes cuenta como un bloque y un archivo vacío cuenta como cero. Este perfil es exactamente el que implementa GNU sum con sum -s y el que muchos scripts de shell aún extraen al comparar dos copias de un archivo pequeño en hosts Unix antiguos.
Es deliberadamente débil según criterios modernos: las colisiones son fáciles y no sustituye a SHA-256, CRC-32 ni a la autenticación criptográfica de mensajes. Su función es la interoperabilidad con sum -s, con documentación de archivo que cita checksums System V, y con material didáctico que contrasta el algoritmo BSD de rotar y sumar frente a la suma simple System V.
Cuándo sigue siendo útil la suma System V
Los proyectos de migración de legado recalculan valores sum -s al mover archivos de shell y distribuciones de la era del disquete a almacenamiento de objetos, fijando checksums y recuentos de bloques dorados en integración continua para que una reescritura moderna siga coincidiendo con el residuo histórico. Los equipos embebidos e industriales que heredaron comprobaciones de integridad al estilo System V en notas de protocolo pueden verificar cadenas de comando cortas sin instalar coreutils completo en cada imagen de compilación.
Educadores y sitios de documentación que posicionan por System V sum o checksum sum -s obtienen una calculadora en vivo cuya ruta gratuita del navegador coincide byte a byte con la de automatización, incluido el caso límite del archivo vacío que confunde a los estudiantes la primera vez que ejecutan sum -s sobre /dev/null o un archivo touch vacío.
Los autores de contenido sobre algoritmos BSD frente a System V pueden mostrar ambos residuos en paralelo emparejando esta capacidad con una ruta BSD separada cuando exista, sin afirmar que alguno sea un hash criptográfico. La validación fallida no consume saldo. Fije hello igual a quinientos treinta y dos con un bloque y vacío igual a cero con cero bloques en suites de regresión, y obtendrá checksums legados reproducibles para scripts, demos LMS y workers en el borde sin levantar un espacio de usuario Unix solo para invocar sum.
Qué puede hacer con ella
Verificación legada de sum -s
Recalcule checksums System V y recuentos de bloques de 512 bytes para cargas de texto cortas, de modo que las herramientas modernas coincidan con la salida histórica de sum -s en scripts de migración y auditoría.
Goldens de CI para entradas vacías y cortas
Afirme checksum 0 y blocks 0 para texto vacío, y fije vectores conocidos como hello → 532 / 1 bloque, para que las refactorizaciones no alteren el algoritmo en silencio.
Enseñanza de BSD frente a System V sum
Muestre a los estudiantes el residuo System V y el recuento de bloques junto a la documentación del algoritmo alternativo de sum, con un aviso claro de entrada vacía para el caso de longitud cero.
Preguntas frecuentes
¿Es lo mismo que sum -s?
Sí. Implementa el algoritmo alternativo System V usado por sum -s: suma de bytes, dos plegados de 16 bits y bloques ceil(length/512). No es el algoritmo BSD predeterminado de sum.
¿Es System V sum un hash seguro?
No. Es un checksum legado de 16 bits para interoperar con sum -s y para docencia. Use digests criptográficos como SHA-256 cuando necesite resistencia a colisiones.
¿Cómo se calcula la suma System V?
Cada byte del texto se suma a un total acumulado. Después ese total se pliega a 16 bits sumando su mitad alta a la baja dos veces, para que el desbordamiento del primer pliegue se absorba en el segundo. El resultado va de 0 a 65535.
¿Qué significa el número de bloques?
Es la cantidad de unidades de 512 bytes que ocupa el texto, redondeada hacia arriba. Una palabra de cinco letras como hello cuenta como 1 bloque, y un texto vacío da 0 bloques y una suma de 0.
¿Cómo se cuentan las letras con tilde y los emojis?
El texto se convierte primero en bytes UTF-8 y cada byte entra en el total. Un carácter que ocupa varios bytes, como una letra acentuada o un emoji, aporta por tanto más de un valor a la suma.
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/sysv-sum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/sysv-sum", {
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/sysv-sum",
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/sysv-sum", 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/sysv-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": "hello"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.sysv_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
Qué es System V sum y en qué se diferencia de BSD sum y de los digests modernos
Use este endpoint cuando necesite ese residuo concreto, no cuando necesite resistencia a colisiones. Cuando llega texto vacío, el residuo es cero y el recuento de bloques es cero, lo que coincide con sum -s sobre un archivo vacío y se expone con el campo empty_notice para que los clientes muestren un estado legible sin inventar su propia redacción.
Contrato de entrada, campos de respuesta y texto vacío frente a texto ausente
La cadena se codifica como UTF-8 y cada byte resultante entra en el acumulador System V; los caracteres Unicode multibyte aportan cada unidad de código UTF-8, no un solo punto de código. Ejemplo: las cinco letras ASCII hello producen checksum quinientos treinta y dos, un bloque y cinco bytes, coincidiendo con sum -s. Mantenga cargas modestas en el navegador; el algoritmo es lineal en la longitud en bytes y opera solo en memoria, sin red ni sistema de archivos. Envíe por POST un cuerpo JSON con el campo de cadena obligatorio text. Se aceptan las claves alias data, payload, value, input y content para la misma carga, de modo que generadores y formularios puedan reutilizar nombres de campo existentes. La cadena vacía es una entrada válida: el manejador devuelve éxito con checksum cero, blocks cero, byte_count cero, empty true y empty_notice explicando que se detectó entrada vacía. Un campo text completamente ausente, un valor null o un objeto que no sea cadena falla con invalid_input y un mensaje que nombra el campo ausente o inválido; esos fallos no se facturan y no deben confundirse con la ruta de éxito en vacío. En caso de éxito el cuerpo siempre incluye checksum como residuo de dieciséis bits, blocks como recuento de bloques de quinientos doce bytes, byte_count de la codificación UTF-8, empty como booleano, algorithm con la etiqueta fija System V sum (sum -s) y block_size quinientos doce. El empty_notice opcional aparece solo cuando empty es true, siguiendo la regla de omitir campos opcionales en lugar de ponerlos a null.
Dónde una API de checksum System V sum aporta valor
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.
Preguntas técnicas
¿Cómo se calcula un checksum System V sum?
Envíe un campo de cadena JSON text (UTF-8). La API devuelve checksum (0–65535), blocks de 512 bytes, byte_count, empty y algorithm System V sum (sum -s).
¿Qué ocurre con la entrada vacía?
La cadena vacía es válida. Obtiene checksum 0, blocks 0, byte_count 0, empty true y empty_notice describiendo la entrada vacía. text ausente es invalid_input y no se factura.
¿Cuánto cuesta la herramienta de checksum System V sum?
La herramienta en el navegador es gratuita. Las solicitudes API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.