Herramienta de verificación de números de Luhn. El algoritmo de Luhn (también llamado módulo 10 o mod 10) es una fórmula de suma de comprobación para dígitos que se utiliza con números de tarjetas de crédito.
Algoritmo de Luhn (Verificación de Números) - dCode
Etiqueta(s): Suma de Comprobación, Aritmética
dCode es gratuito y sus herramientas son una valiosa ayuda en juegos, matemáticas, geocaching, acertijos y problemas para resolver todos los días.
¿Una sugerencia? ¿Un comentario? ¿Un error? ¿Una idea? ¡Escribe en dCode!
El algoritmo de Luhn (o fórmula de Luhn o clave de Luhn) es un algoritmo de verificación utilizado para validar varios números (como tarjetas de crédito).
Su principio es calcular, a partir de un número (o una serie de números), una clave de control (llamada checksum) que permite verificar que el número es correcto (porque la clave es un número que depende de los demás).
Inventado por Hans Peter Luhn en 1954 y sigue siendo ampliamente utilizado en sistemas de procesamiento de datos.
Luhn permite verificar números (tarjeta bancaria, SIREN, SIRET, IMEI, etc.) mediante la tecla de control (el último dígito que permite verificar los demás dígitos). Si un carácter se lee o escribe mal, el algoritmo de Luhn podrá detectar este error.
Luhn es reconocido porque MasterCard, American Express (AMEX), Visa, CB y todas las tarjetas bancarias lo utilizan.
Ejemplo: 12345674 es un número de tarjeta válido, 1234567 es el número inicial y 4 es la suma de comprobación.
El algoritmo de Luhn puede detectar rápidamente errores de entrada, errores tipográficos o números no válidos antes de realizar operaciones críticas, como procesar pagos con tarjeta de crédito o identificar usuarios.
Ejemplo: Si un usuario ingresa 13245674 (con 2 y 3 invertidos), entonces el programa calcula la clave de Luhn para 1324567 y encuentra 5 en lugar del 4 esperado, el número se detecta como inválido (lo que confirma que el código se copió incorrectamente)
El algoritmo de Luhn comienza al final del número. Tome el último dígito y muévase hacia la izquierda. Duplica el valor de todos los números pares. Si el doble de un dígito es mayor o igual a 10, reemplácelo con la suma de sus dígitos. Completa la suma $ s $ de todos los números obtenidos. La tecla de control $ c $ es igual a $ c = (10 - (s \mod 10)) \mod 10 $
Ejemplo: Calcula X para el número 853X, estableciendo primero X=0.
Toma el 3, duplícalo para obtener 6.
Toma el 5, sin duplicarlo.
Finalmente, duplica el 8 (8*2=16 y 1 6=7) para obtener 7.
La suma es 6 5 7 = 18. Como 18 módulo 10 = 8, calcula 10 - 8 = 2, por lo que la suma de comprobación para X es 2. Entonces 8532 es válido según Luhn.
8 | 5 | 3 | 0 |
8*2=16 | resto 5 | 3*2=6 | resto 0 |
1+6=7 | 5 | 6 | 0 |
s=7 | +5 | +6 | +0=18 |
c=10-(18%10)=2 |
Ingrese el número, calcule la clave de Luhn (o use el generador disponible en esta página), luego agregue esta clave al final del número.
También es posible encontrar un dígito faltante (o ilegible) si se conocen todos los demás.
El algoritmo de verificación no permite la detección de ciertas permutaciones de dígitos.
Ejemplo: Los números 0123456789 y 9123456780 tienen ambos una suma de comprobación de 7. En términos generales, este es el caso de los pares 09 y 90: cualquier número que contenga un 0 reemplazado por un 9 y un 9 reemplazado por un 0 tiene una suma de comprobación idéntica.
Otra debilidad es la imposibilidad de detectar un error doble como 22 desde/hasta 55 o 33 desde/hasta 66 o incluso 44 desde/hasta 77.
Ejemplo: 001122 y 001155 tienen la misma suma de comprobación.
La presencia o ausencia de ceros iniciales 0 al comienzo del número no cambia la suma de comprobación. Esto puede ser una ventaja o una desventaja.
Ejemplo: 000123 y 123 tienen la misma suma de comprobación.
Los códigos CVC (Card Validation Code) o CVV (Card Validation Value) o criptograma visual son códigos de 3 dígitos que se encuentran en el reverso de las tarjetas bancarias. Son generados por los bancos, Visa y MasterCard tienen su propio algoritmo (basado en una clave privada) utilizando en particular el número de cuenta personal, la fecha de caducidad de la tarjeta y el código de servicio, esta información es luego comparada con la calculada por la entidad bancaria. Algunos bancos ofrecen cambiar estos números a voluntad sin cambiar de tarjeta (lo que es una prueba de que el CVC no está vinculado al número de tarjeta y se calcula de forma independiente).
El algoritmo de Luhn no se utiliza para calcular estos números, por lo que es imposible calcularlos sin conocer el método de generación (y a menudo la clave privada asociada).
La fecha de vencimiento (valido hasta) no es más que un dato en la tarjeta, que indica el mes y el año hasta el cual la tarjeta es válida. Este no es un valor que dependa del algoritmo de Luhn, no es computable. Su valor está escrito en el frente de la tarjeta en formato mm/aa.
La mejor práctica para generar un código de tarjeta de regalo es generar un número aleatorio y asociarle una suma de verificación como el algoritmo de Luhn. El código de la tarjeta regalo se almacena luego en una base de datos con sus datos (dinero, nombre, puntos de fidelidad, etc.). El uso de Luhn garantiza que el código de regalo se escriba correctamente, independientemente de que lo ingrese una persona o lo lea una máquina.
Una persona que quiera encontrar el algoritmo de generación no podrá hacerlo, ya que el número aleatorio garantiza una probabilidad de éxito demasiado baja.
NB: Lamentablemente, no todos los códigos de tarjetas de regalo se basan en un código aleatorio y, si son deterministas, están sujetos a una falla de seguridad que permite realizar ingeniería inversa y generarlos a voluntad.
El PIN o código secreto no está vinculado al número de tarjeta. El PIN es una contraseña secreta almacenada de forma segura y encriptada en los sistemas bancarios. No se puede derivar del número de tarjeta.
El algoritmo de Luhn es un método para validar números de tarjetas de crédito, pero no cifra ni almacena el PIN ni ninguna contraseña. Sólo funciona como suma de comprobación para detectar errores tipográficos en un número de tarjeta.
No, la banda magnética contiene la información de la tarjeta bancaria complementada por una suma de comprobación diferente: la validacion de redundancia longitudinal.
dCode conserva la propiedad del código fuente "Algoritmo de Luhn (Verificación de Números)". Excepto la licencia explícita de código abierto (indicada Creative Commons/gratis), el algoritmo "Algoritmo de Luhn (Verificación de Números)", el subprograma o fragmento (convertidor, solucionador, cifrado / descifrar, codificar / decodificar, cifrar / descifrar, descifrar, traducir), o las funciones "Algoritmo de Luhn (Verificación de Números)" (calcular, convertir, resolver, descifrar / cifrar, descifrar / cifrar, decodificar / codificar, traducir) escritas en cualquier lenguaje informático (Python, Java, PHP, C#, Javascript, Matlab, etc.) y todas las descargas de datos, secuencias de comandos o acceso API para "Algoritmo de Luhn (Verificación de Números)" no son públicas, lo mismo ocurre con el uso sin conexión en PC, dispositivos móviles, tabletas, iPhone o Android. aplicación!
Recordatorio: dCode es de uso gratuito.
¡Está permitido copiar y pegar la página "Algoritmo de Luhn (Verificación de Números)" o cualquiera de sus resultados (incluso con fines comerciales) siempre que le das crédito a dCode!
Exportar resultados como un archivo .csv o .txt es gratuito haciendo clic en el icono exportar
Citar como fuente (bibliografía):
Algoritmo de Luhn (Verificación de Números) en dCode.fr [sitio web en línea], recuperado el 2025-03-12,