ForHosting KIT · Utilidades de desarrollo

Dígito de control Damm

Añada una sola cifra a cualquier número y detecte las erratas que de verdad se cometen: 572 recibe el dígito de control Damm 4 y queda como 5724, y cualquier cifra cambiada o dos cifras vecinas intercambiadas rompen la comprobación. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Solo cadena de dígitos
572
Obtiene
Modo de cálculo
Compute
Entrada
572
Dígito de control
4
Con verificación
5724

Teclear a mano códigos de cuenta largos, números de serie o identificadores de socio es donde se esconde la mayoría de los errores de dígitos. El algoritmo del dígito de control Damm añade un único dígito final de modo que toda sustitución de un dígito y toda transposición de dígitos adyacentes rompe la suma de verificación —una garantía más fuerte que los esquemas simples de módulo 10 para las erratas exactas que comete la gente—. Esta capacidad calcula ese dígito para una carga útil que usted ya tiene, o valida un número completo que ya lo incluye, y rechaza la entrada no numérica con un error claro en lugar de ignorar basura en silencio.

Qué caza el algoritmo Damm que los controles más débiles no ven

Los dígitos de control existen porque las personas y los teclados introducen daños predecibles: una tecla equivocada, dos dígitos vecinos intercambiados o un dígito insertado o eliminado. Muchos esquemas cotidianos, incluida la clásica regla de Luhn usada en las tarjetas de pago, cazan la mayoría de los errores de un dígito y muchos intercambios adyacentes, pero dejan invisibles algunos pares de transposición —notablemente 09 frente a 90 bajo Luhn—.

H. Michael Damm diseñó una construcción distinta: los dígitos se combinan de izquierda a derecha a través de una tabla fija de cuasigrupo totalmente antisimétrico de 10 por 10, partiendo de un valor intermedio cero. Por la estructura de esa tabla, tras procesar la carga útil el dígito intermedio es exactamente el dígito de control que usted debe añadir, y procesar el número completo incluido ese dígito siempre termina en cero cuando el número está bien formado.

Las propiedades algebraicas garantizan que cambiar cualquier dígito, o intercambiar cualesquiera dos dígitos adyacentes, no puede dejar el intermedio final en cero. Esa es la ventaja práctica para números de cuenta, SKU de almacén, identificadores de paciente o de tique y cualquier código de longitud fija donde una sola errata desviaría el trabajo al registro equivocado. Esta herramienta implementa esa tabla estándar y el recorrido estándar de izquierda a derecha; no inventa una variante propia.

La salida siempre nombra el algoritmo como damm para que los sistemas posteriores registren qué esquema protegió el valor. Frente a los dígitos de control de la familia de códigos de barras (EAN, UPC, ISBN), Damm no está atado a un diseño de GTIN minorista —se aplica a cualquier cadena de dígitos puros que usted elija como carga útil, y por eso pertenece a una utilidad de codificación y no a un validador de código de barras de producto.

Cómo calcular un dígito de control o validar un número completo

Envíe un campo number que contenga solo los caracteres del 0 al 9. El modo validate espera un número completo de al menos dos dígitos (uno o más dígitos de carga útil más el dígito de control final). Esa forma facilita mostrar «usted tecleó X, se esperaba Y» en un formulario sin una segunda llamada.

Las cadenas vacías, un number faltante y los valores de modo no válidos fallan antes de cualquier consulta de la tabla y no se facturan. Prefiera compute cuando acuñe identificadores nuevos; prefiera validate cuando reciba un identificador de un usuario, un fichero de socio o una etiqueta escaneada y necesite una comprobación booleana antes de buscar el registro.

Dónde encajan los dígitos de control Damm en sistemas reales

Los programas de socios y fidelización acuñan identificadores numéricos secuenciales o aleatorios y necesitan un dígito final que los agentes del centro de llamadas y los teclados móviles no corrompan en silencio. Los equipos de almacén y logística imprimen códigos de bulto o de activo; la transposición de dos dígitos en la ruta de un escáner de mano es común, y Damm caza todo intercambio adyacente que los esquemas más débiles pasan por alto.

Las oficinas de sanidad y educación que aún mueven formularios en papel con números de referencia de varios dígitos pueden validar en la entrada y mostrar una corrección inmediata en lugar de crear un historial o una matrícula duplicados.

Las pruebas de integración y los trabajos de calidad de datos recalculan el dígito de control esperado para cada fila de una exportación CSV y marcan las filas donde el número completo almacenado ya no coincide, lo que caza tanto las ediciones humanas como los errores de desfase por uno en los generadores. Los equipos de producto que ya usan Luhn para campos tipo tarjeta pueden adoptar Damm para los identificadores internos donde la propiedad de transposición más fuerte importa más que las convenciones de las redes de tarjetas.

No tome un control Damm superado como prueba de autorización o propiedad —solo prueba que la cadena de dígitos está bien formada bajo este algoritmo, el mismo listón de honestidad que usted aplica a cualquier suma de verificación.

Auditar columnas de identificadores exportadas

Valide por lotes todos los identificadores numéricos de un CSV de socio o de una exportación de almacén y ponga en cuarentena las filas cuyo dígito de control ya no coincida con el valor esperado recalculado.

¿Qué es un dígito de control Damm?

Es un único dígito final calculado con el algoritmo de cuasigrupo de H. Michael Damm, de modo que cualquier dígito erróneo o cualquier transposición adyacente hace que el número completo falle la validación.

¿Qué ocurre con letras, espacios o guiones?

Proporcione solo dígitos del 0 al 9; las tareas de validación fallidas no se facturan.

¿Es gratuita la herramienta de dígito de control Damm?

La herramienta del navegador es gratuita y funciona en local.

¿En qué se diferencia Damm del dígito de control Luhn?

Luhn detecta casi todos los errores de una cifra, pero se le escapan algunos intercambios de cifras vecinas, como 09 escrito 90. Damm detecta cualquier cifra cambiada y cualquier intercambio de dos cifras contiguas, algo útil en números de cuenta o de socio tecleados a mano.

¿Cómo compruebo un número que ya lleva su dígito Damm?

Elija la opción de validar y escriba el número completo. Al recorrer todo el número, dígito de control incluido, por la tabla Damm el resultado debe terminar en cero; si no es así, alguna cifra está mal tecleada.

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.

POSThttps://api.kit.forhosting.com/enc/damm

¿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.

curl -X POST https://api.kit.forhosting.com/enc/damm \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"572"}'
{
  "number": "572"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.damm",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ejecútela gratis en el navegador o llame a la API del KIT al precio publicado; ambas vías usan la misma aritmética pura, sin red y sin números almacenados.

Cómo calcular un dígito de control o validar un número completo

Los espacios, guiones, letras, puntos decimales y la notación científica se rechazan como entrada no numérica con invalid_input, de modo que nunca acepta un valor recortado en silencio. El modo compute es el predeterminado: el motor recorre la carga útil por la tabla de Damm, devuelve check_digit como una cadena de un carácter y devuelve with_check como la carga útil más ese dígito, para que usted pueda almacenar o imprimir una sola cadena. La respuesta informa de valid como verdadero cuando el recorrido completo termina en el intermedio cero, e incluye siempre el check_digit final, el expected_check_digit recalculado solo a partir de la carga útil y la subcadena de la carga útil sin el último dígito. Como la ruta es un análisis puro sin reloj, fuente aleatoria ni red, la misma entrada siempre produce el mismo JSON en la herramienta gratuita del navegador y en la API. A $0.002 por solicitud correcta, usted puede proteger importaciones masivas, formularios de alta e impresoras de etiquetas por lotes sin negociar un nivel a medida.

Dónde encajan los dígitos de control Damm en sistemas reales

En cada flujo el contrato es el mismo: solo dígitos, calcular o validar, JSON estructurado que usted puede someter a pruebas de referencia, comportamiento idéntico gratis en el navegador o mediante saldo prepago del KIT, y un fallo honesto cuando la entrada no es numérica.

Acuñar identificadores de socio o de cuenta

Genere una carga útil secuencial, llame al modo compute y almacene with_check para que todo identificador nuevo lleve un dígito final Damm antes de imprimirlo en tarjetas o enviarlo por correo a los socios.

Validar códigos tecleados o escaneados en la entrada

Cuando un usuario o un escáner envíe un número completo, llame al modo validate y bloquee la búsqueda cuando valid sea falso, mostrando expected_check_digit para ayudar a corregir una sola errata.

¿Cómo calculo un dígito de control Damm con esta API?

Envíe un POST con number fijado a los dígitos de la carga útil y mode compute (u omita mode). La respuesta incluye check_digit y with_check (carga útil más el dígito de control).

¿Cómo valido un número que ya tiene un dígito de control?

Envíe un POST con la cadena de dígitos completa y mode validate. La respuesta incluye valid, check_digit, expected_check_digit y la carga útil sin el último dígito.

Ver la documentación completa del KIT →