Mare Magnum | El algoritmo Luhn para verificar tarjetas de crédito

11 December 2007 – 13:12 | por Sergio

El algoritmo de Luhn fue desarrollado por el científico de IBM Hans Peter Luhn (1896-1964) y es usado, entre otras cosas, para verificar si la serie numérica de las tarjetas de crédito (no débito) es válida comparándola con el dígito de control de la misma (último dígito).

Tomemos, por ejemplo, el número 4408 0412 3456 7890

luhn1-7571021

luhn2-4141222

El primer paso para aplicar el algoritmo es multiplicar cada número de la tarjeta (primera fila) por 2 (segunda fila), pero únicamente las columnas impares.

Posteriormente, si el número resultante del cálculo anterior no es menor a 10, le restamos 9 (tercera fila).

El último paso sería sumar todos los dígitos resultantes (los representados en la cuarta fila).

Si el número resultanete de la suma anterior, no es múltiplo del número de control (si es cero, tomamos el 10), los números de la tarjeta no son válidos. En nuestro ejemplo la suma nos da como resultado 67, que no es múltiplo de 10, por lo que es erróneo.

Nota: Al último dígito, el de control, no se le aplican los cálculos anteriores, aunque aparezca representado en la tabla.

Si queríes saber más cosas sobre las numeraciones de las tarjetas de crédito, además de lo anterior, visitad Anatomy of Credit Card Numbers de Michael Guilleland. Hay, incluso, código fuente para aplicar el anterior algoritmo.

Via reddit.

______________________________________________________

Etiquetas: algoritmo, Curiosidades, IBM, Luhn, tarjeta de crédito, validación
Publicado en: Programación