# Coded by Cody8295 #
# http://codyprojects.info #
# Random Credit Card Number Generator #
import random
def two_sum(n): #Returns the difference of the 2 digits of a number above 9
#16... 1+6 = 7....16-9 = 7
return n-9
def is_valid(cc): #performs the Luhn check on a number
if cc==0: return False
total = 0
nums = []
count = 1
for x in str(cc):
if count%2==0:
nums.append(int(x))
else:
nums.append(int(x)*2)
count+=1
for y in nums:
if y>9:
total+=two_sum(y)
else: total+=y
if total%10==0: return True
return False
def generate(n, iin): #generates n number of random working credit card numbers
s = ""
if iin!="visa" and iin!="mastercard" and iin!="amex" and iin!="discover" and iin!="dinersclub": return "Unrecognized issuer"
for x in xrange(0, n):
cc = 0
while not is_valid(cc):
if iin=="visa": cc = random.randrange(4000000000000000, 4999999999999999)
if iin=="mastercard": cc = random.randrange(5100000000000000, 5599999999999999)
if iin=="amex":
if random.randrange(0, 2)==0:
cc = random.randrange(340000000000000, 349999999999999)
else: cc = random.randrange(370000000000000, 379999999999999)
if iin=="discover":
if random.randrange(0, 2)==0:
cc = random.randrange(6011000000000000, 6011999999999999)
else: cc = random.randrange(6500000000000000, 6599999999999999)
if iin=="dinersclub":
cc = random.randrange(5400000000000000, 5599999999999999)
s+=str(cc)+"\n"
return s
def main():
n = raw_input("\nHow many random working credit card numbers would you like to generate? ")
iin = raw_input("\nFor what issuer would you like to generate these cards? (visa, mastercard, amex, discover, dinersclub)")
if not n.isdigit(): n = 10
if iin=="": iin="visa"
ccs = generate(int(n), iin)
print ccs
output = raw_input("Output to log?")
if output == "y" or output == "Y":
f = open("log"+str(random.randrange(11111, 999999999999))+".txt", "w")
f.write(ccs)
else: main()
main()