En este documento se explica el sistema de codificacion de las tarjetas de Credito, Debito y otras. El algoritmo que se describe en este texto es valido para la mayor parte de tarjetas, no solo las de credito o debito, sino la de grandes centros comerciales aunque los datos particulares sean sobre las primeras.
Descripcion del Numero de TarjetaEl Numero se compone de tres partes principales:
Los 4 primeros digitos componen el Identificativo del banco que cede la tarjeta. Hay un numero diferente para cada Banco pero estos numeros no son los mismos de acuerdo al continente en que se este. Segun esto el numero de CITIBANK en EEUU es el 4013 mientras que en Europa es el 4539.
El 5 digito es el Tipo de tarjeta e indica que entidad financiera gestiona esa tarjeta. Las mas importantes son Visa, American Express y Master Card. Los 10 digitos siguientes componen el Numero de usuario e identifican a este de manera unica. Digito de control es el ultimo numero y se obtiene aplicando un algoritmo al resto del numero.
El formato es el siguiente:1111 2333 3333 3334
Donde:El Identificativo esta representado por 1111 el cual es un numero de 4 digitos siendo cada digito un numero del 0 al 9. El Tipo esta representado por 2 el cual es un numero de 1 digitos siendo cada digito un numero del 0 al 9.
El Numero de usuario esta representada por 333 3333 333 el cual es un numero de 10 digitos siendo cada digito un numero del 0 al 9. El Digito de Control esta representado por 4 el cual es un numero de 1 digitos siendo cada digito un numero del 0 al 9.
Algoritmo de Codificacion del NumeroLa codificacion del numero de la tarjeta se realiza en tres pasos:
* Se multiplican por dos todos los digitos de las posiciones impares y aquellos mayores de 9 se suman los dos digitos. Resultado= Ax2 si Resultado>10 entonces Resultado=Resultado-9.
* Despues de calcular los nuevos numeros de las posiciones impares se suman entre si todos los digitos. a1b2 c3d4 e5f6 g7h8 i9j0 ->
* Resultado= a+1+b+2+c+3+d+4+e+5+f+6+g+7+h+8+i+9+j+0
Si el resultado es multiplo de 10 entonces el numero de tarjeta es valido. Resultado MOD 10 = 0
Ejemplo:Si tenemos el numero de tarjeta 4539 4512 0398 7356 y comprobar que es un numero valido:
Multiplicar por dos los numeros de las posiciones impares (4-3- 4-1- 0-9- 7-5-) y dejarlos con un solo digito:
4x2=
83x2=
64x2=
81x2=
20x2=
09x2=
18 -> 1+8=97x2=
14 -> 1+4=55x2=
10 -> 1+0=1Sumar los digitos de las posiciones pares y los nuevos de las posiciones impares.
5+9+5+2+3+8+3+6+8+6+8+2+0+9+5+1=80
80 es multiplo de 10 por lo que el numero de tarjeta es valido.
Saludos este tutorial es publico no es nada secreto, pero tengan cuidado ya que hay un limite entre lo legal e ilegal. Suerte!