Está en la página 1de 5

El algoritmo de Luhn y su importancia en la

validación de tarjetas de pago


Tal y como se explicó hace algunos años en el
artículo «¿Cómo funcionan las tarjetas de pago?
Parte I: PAN (Primary Account Number)«, el PAN
de una tarjeta está conformado por una serie de
dígitos (por lo general 16) con una estructura
definida

Este artículo describirá la importancia del


último dígito del PAN, conocido como «dígito de
verificación» («check digit»), valor que permite
identificar si un número de tarjeta de pago es
válido o no. Antes de proceder, es importante
tener en cuenta que el algoritmo de Luhn permite
comprobar si una secuencia de dígitos
corresponde a un número de tarjeta (PAN) válido,
sin que ello implique que dicha tarjeta sea
operativa o que pueda ser usada en transacciones
comerciales, labor que corresponde al centro
autorizador.

Obviamente, una de las aplicaciones principales


de este algoritmo se encuentra en la
identificación de errores de digitación del PAN
de las tarjetas de pago (definido en el estándar
ISO/IEC 7812-1:2006 Identification cards —
Identification of issuers — Part 1: Numbering
system).

A pesar de su facilidad de implementación, el


algoritmo no ofrece confiabilidad total en el
caso de intercambio de dos cifras contiguas (por
ejemplo 12 con 21), razón por la cual la fórmula
ha sido optimizada en algoritmos más recientes
como es el caso del algoritmo de Verhoeff y
el algoritmo de Damm.
Generación del dígito de verificación a través
del algoritmo de Luhn
Para generar el dígito de verificación empleando
el algoritmo de Luhn se deben seguir estos
pasos:
En una secuencia de dígitos dada, el dígito de
verificación será el último valor, que en
principio se desconoce
Partiendo de esa última posición, se multiplica
cada dígito de posición par (contando desde la
derecha) por dos. Si el resultado es un número
de dos dígitos, entonces se suman estos dos
valores
Posteriormente, se suman todos los dígitos
obtenidos
El dígito de verificación es el número que se
obtiene como residuo después de dividir ese
resultado entre 10 (que es lo que en matemáticas
se denomina mod-10). En otras palabras, el
dígito de verificación es el número que debe
agregarse a este resultado para hacer el
siguiente múltiplo de 10.

Generación del dígito de verificación empleando


el algoritmo de Luhn

Validación de un número de tarjeta empleando el


algoritmo de Luhn
Cuando se cuenta con una secuencia de dígitos y
se quiere saber si esos números corresponden o
no a un posible número de tarjeta de pago (PAN),
se aplica el algoritmo de Luhn cuyo resultado
debe ser 0 (cero) si esa secuencia es válida. En
este caso, los pasos a seguir son los mismos que
en la generación, sólo que esta vez se tiene en
cuenta el último dígito de la secuencia dentro
de las operaciones aditivas. Para este ejemplo
se usará la secuencia con el dígito de
verificación generado anteriormente:

Validación de un número de tarjeta empleando el


algoritmo de Luhn
Como se puede observar, la secuencia es
considerada válida ya que el resultado de la
operación mod-10 es igual a cero.
El siguiente caso analiza otra secuencia de 16
dígitos para identificar si es un número de
tarjeta válido o no:
Validación de un número de tarjeta empleando el
algoritmo de Luhn
En este caso, el resultado de mod-10 es igual a
1, por lo que la secuencia corresponde a un
número de tarjeta inválido.

También podría gustarte