search

Found

info Descripción

Herramienta Luhn (Mod 10) en dos modos: VERIFY valida un número de tarjeta/IMEI; GENERATE produce el dígito de control con una traza por cada cifra.

📘 Cómo usar

  1. Alterna el modo entre VERIFY (validar un número completo) y GENERATE (calcular el dígito de control que falta)
  2. Pega la cadena de dígitos en el campo de entrada; los espacios y guiones se eliminan automáticamente
  3. Lee el veredicto Valid / Invalid o el dígito de control calculado en el panel de resultados
  4. Compara la tabla de duplicación, suma de cifras y total acumulado con tu propia implementación

Calculadora de checksum Luhn

Introduce dígitos para verificar
Article

Calculadora de checksum Luhn | Valida o genera el Mod 10 con una tabla de traza por cifra

Herramienta Luhn (Mod 10) en dos modos para tarjetas de crédito, IMEI y SIN canadiense. Valida un número completo o produce el dígito de control que falta, con una tabla de 5 columnas que muestra posición, valor duplicado, suma de cifras y total acumulado para cada dígito.

💡 Sobre esta herramienta

Cuando estudias el algoritmo de Luhn por primera vez —en un curso de estructuras de datos, en un tutorial de Stripe o al implementar tu primer validador de tarjetas— las tres reglas se ven sencillas en papel: recorrer los dígitos de derecha a izquierda, duplicar los que ocupan posiciones pares, sumar las cifras de los productos mayores que 9, y verificar que el total sea múltiplo de 10. Sencillo hasta que escribes el primer test y obtienes Invalid para un número que sabes que es válido.

La mayoría de validadores en línea responden con un veredicto y nada más. Eso no ayuda a aprender el algoritmo ni a depurar tu propio código. Esta herramienta abre el cálculo paso a paso en una tabla de 5 columnas: índice de posición desde la derecha, dígito original, valor duplicado (cuando corresponde), suma de cifras (16 → 1 + 6 = 7) y total acumulado. Cada fila es una operación atómica que puedes reproducir en papel o en tu código.

Hay dos modos. VERIFY toma un número completo (con dígito de control) y reporta si el total mod 10 es cero. GENERATE toma el número sin el dígito de control y calcula qué cifra final lo haría divisible por 10. GENERATE es el modo útil cuando preparas datos de prueba o cuando quieres aprender la operación inversa.

El campo de entrada acepta espacios (4532 0151 1283 0366), guiones (4532-0151-1283-0366) o la cadena pura. La normalización deja solo dígitos antes de calcular.

🧐 Preguntas frecuentes

¿En qué se diferencian VERIFY y GENERATE? VERIFY responde "este número, ¿cumple Mod 10?". GENERATE responde "para que este número cumpla Mod 10, ¿qué cifra debe ir al final?". En ambos casos la tabla muestra todas las operaciones intermedias, así que puedes usar GENERATE como herramienta de enseñanza incluso si solo te interesa la verificación.

¿Por qué se duplican algunos dígitos y otros no? El algoritmo recorre la cadena de derecha a izquierda. Si la posición (1, 2, 3, …) es par, el dígito se duplica. Si es impar, se mantiene. Esto detecta la mayoría de transposiciones adyacentes porque al duplicar la cifra alternada se rompe la simetría del intercambio.

¿Qué pasa cuando el doble es mayor que 9? Se suman las cifras del resultado. 8 × 2 = 16 → 1 + 6 = 7. Algunos textos enseñan el atajo doblado − 9, que da el mismo resultado para las cifras 5–9. Esta calculadora muestra la versión por suma de cifras porque es la que aparece en la patente original de Luhn y en la mayoría de manuales.

¿Sirve para IMEI y otros identificadores? Sí, para todos los que usan Luhn Mod 10: tarjetas de crédito (ISO/IEC 7812), IMEI de móviles (3GPP TS 23.003, 15 dígitos), SIN canadiense (9 dígitos) y NPI estadounidense (10 dígitos, identificador sanitario). El ISBN-10 usa Mod 11 con otra ponderación y no es compatible con esta herramienta.

¿Es un método de seguridad? No. Luhn fue diseñado en 1954 para detectar errores humanos al escribir números a mano: una cifra equivocada o dos adyacentes intercambiadas. No protege contra un atacante que conozca el algoritmo y quiera fabricar un número válido. Para autenticación se necesitan firmas criptográficas; Luhn solo elimina ruido tipográfico.

¿Hay un límite de longitud? No hay tope. La tabla se extiende para cualquier longitud que pegues. Es útil cuando trabajas con identificadores internos personalizados (códigos de almacén, IDs de cliente) a los que alguien ha añadido un dígito de control Luhn sobre una longitud no estándar.

📚 Datos curiosos

Hans Peter Luhn era investigador en IBM cuando presentó la patente 2950048 en 1954, otorgada en 1960. Curiosamente, Luhn pasaría a la historia más por su trabajo en recuperación de información que por este algoritmo: inventó el índice KWIC (Key Word in Context), una técnica precursora de los motores de búsqueda modernos. El Mod 10 fue para él un proyecto menor, una herramienta interna para mejorar la fiabilidad de los lectores de tarjetas perforadas en los bancos.

La patente expiró en 1977. En ese mismo periodo, Visa y MasterCard estaban definiendo el estándar internacional de numeración de tarjetas que se publicaría como ISO/IEC 7812. La coincidencia temporal hizo que Luhn pasara de ser una técnica interna de IBM a convertirse en el chequeo de cifra que casi todas las tarjetas del mundo todavía llevan, sin coste de licencia y verificable a mano.

Una curiosidad: Luhn no detecta la transposición de los dígitos 0 y 9 adyacentes (0990). Es el único caso donde el algoritmo se queda corto en su misión de captar transposiciones. Por eso los sistemas serios añaden una validación de longitud y un chequeo del BIN (los primeros 6 dígitos identifican al emisor) antes del Luhn, para reforzar la detección en ese punto ciego.