¿Qué es el algoritmo de Luhn?
El algoritmo de Luhn, conocido también como algoritmo «módulo 10», es una sencilla fórmula de suma de verificación creada por Hans Peter Luhn, científico de IBM, en 1954. Se utiliza para validar números de identificación como los de tarjetas de crédito y débito, los IMEI de los teléfonos móviles y numerosos documentos nacionales de identidad. Detecta los errores de un solo dígito y la mayoría de las transposiciones, pero no es un mecanismo de seguridad criptográfico: se trata únicamente de una comprobación básica de la integridad de los datos.
Cómo usar esta calculadora
Escribe el número que quieres verificar en el campo (los espacios y los guiones se ignoran de forma automática). La calculadora procesa los dígitos, aplica la suma de verificación de Luhn y te indica si el número es VÁLIDO o NO VÁLIDO, junto con la suma acumulada, esa suma módulo 10 y el dígito de control final.
La fórmula explicada
Lee los dígitos de derecha a izquierda. Deja intacto el último dígito (el de control) y, a partir de ahí, duplica uno de cada dos dígitos. Si al duplicar obtienes un número mayor que 9, réstale 9 (lo que equivale a sumar sus dos cifras; por ejemplo, \(8\times 2=16 \to 1+6=7\)). Suma todos los valores resultantes. Si el total es divisible entre 10, el número supera la comprobación de Luhn.
$$\text{Valid} \iff \left(\sum_{i=0}^{n-1} f(d_i)\right) \bmod 10 = 0 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= i\text{-th digit of } \text{Number} \text{ (from right)} \\ f(d_i) &= \begin{cases} d_i & i \text{ even} \\ 2d_i - 9\,[2d_i>9] & i \text{ odd} \end{cases} \end{aligned} \right.$$
Ejemplo resuelto
Tomemos el número 79927398713. Al duplicar uno de cada dos dígitos desde la derecha y reducir los valores superiores a 9, los dígitos ajustados suman 70. Como \(70 \bmod 10 = 0\), el número es válido.
Preguntas frecuentes
¿Un resultado válido de Luhn significa que la tarjeta es real? No. Solo confirma que el número está bien formado; no verifica si la cuenta existe ni si tiene fondos.
¿Qué caracteres se admiten? Solo se usan los dígitos; los espacios, los guiones y demás símbolos se eliminan antes de hacer el cálculo.
¿Por qué se resta 9 al duplicar? Restar 9 a un dígito duplicado mayor que 9 da el mismo resultado que sumar sus dos cifras, que es justo lo que exige la regla original de Luhn.