This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

[Python] Verificación de tarjetas de crédito (16 caracteres) + CCV2

  • 3 Replies
  • 8337 Views

0 Members and 2 Guests are viewing this topic.

Offline khyv123

  • *
  • Underc0der
  • Posts: 15
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • Email
Código que verifica tarjetas de credito American Express, VISA, MasterCard y Discover de 16 caracteres y obtiene el código cvv2.

Code: You are not allowed to view links. Register or Login
Sintaxis: CreditCard.py <codigo>

 - <codigo> debe ser un numero de tarjeta de credito de 16 caracteres.
 - Tarjetas compatibles : American Express, VISA, MasterCard y Discover.

 Ejemplos:
        CreditCard.py 3735270656921892
        CreditCard.py 4759912389050064
        CreditCard.py 5413880183226195

Ejemplo de uso:

Code: You are not allowed to view links. Register or Login
D:\>CreditCard.py 3735270656921892

 Tarjeta American Express valida (cvv2: 7624)

D:\>CreditCard.py 4759912389050064

 Tarjeta VISA valida (cvv2: 356)

D:\>CreditCard.py 5413880183226195

 Tarjeta MasterCard valida (cvv2: 122)

Code: (python) You are not allowed to view links. Register or Login
# ******************************************
#     Autor : khyv123 
#     Fecha de creacion : 22/07/11
#     Creado para : www.underc0de.org
# ******************************************

import sys

def sintaxis():
print '\n Sintaxis: CreditCard.py <codigo>'
print '\n - <codigo> debe ser un numero de tarjeta de credito de 16 caracteres.'
print ' - Tarjetas compatibles : American Express, VISA, MasterCard y Discover.'
print '\n Ejemplos:'
print '\tCreditCard.py 3735270656921892'
print '\tCreditCard.py 4759912389050064'
print '\tCreditCard.py 5413880183226195'

def numbers(num):
return filter(lambda x:ord(x)<48 or ord(x)>57,num)=='' and len(num)==16

if len(sys.argv)==2 and numbers(sys.argv[1])==True:

dic={3:'American Express',4:'VISA',5:'MasterCard',6:'Discover'}
code=sys.argv[1]

if int(code[0]) in dic:
tipo=dic[int(code[0])]
sm=reduce(lambda x,y:x+y,map(lambda x:x%2==0 and int(code[x])*2%9 or int(code[x]),range(len(code))))
if sm%10==0 and sm<=150:
if tipo=='American Express':
cvv2=code[5]+code[7]+code[11]+(code[2]!='9' and str(int(code[2])+1) or '1')
else:
cvv2=code[7]+code[11]+(code[2]!='9' and str(int(code[2])+1) or '1')
sys.exit('\n- Tarjeta %s valida (cvv2: %s)' % (tipo,cvv2))

else:
sys.exit('\nTarjeta no valida.')
else:
sys.exit('\nTipo de tarjeta no reconocido.')
else:
sintaxis()


Si alguien quiere más  información sobre el tema puede visitar estos enlaces:

- You are not allowed to view links. Register or Login
- You are not allowed to view links. Register or Login
« Last Edit: May 03, 2014, 03:43:18 am by Flemon »

Offline [C]orrupted[B]yte

  • *
  • Underc0der
  • Posts: 172
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • R00TW0RM
    • Email
Es un algoritmo demaciado sencillo =) aunque no me lo sabia, aun se sigue usando CCV2?

Offline JaAViEr

  • *
  • Underc0der
  • Posts: 162
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • View Profile
    • Blog de Programación :: Python
Recuerdo haber hecho esto en Batch, el algoritmo a veces lo hice a mano
jajaja

Saludos.
You are not allowed to view links. Register or Login

Offline JafethZ27

  • *
  • Underc0der
  • Posts: 1
  • Actividad:
    0%
  • Reputación 0
    • View Profile
    • Email
Podrías comunicarte conmigo +522821607265