This article mainly introduces how to generate a credit card number at random in Python. it can generate a credit card number and has some reference value, for more information about how to randomly generate a credit card number using Python, see the following example. Share it with you for your reference. The specific analysis is as follows:
This Python code generates a random credit card number based on the rules generated by the credit card number. it can be verified. it is for your reference only. do not use it for illegal purposes. Otherwise, you are solely responsible for the consequences.
#!/usr/bin/python"""gencc: A simple program to generate credit card numbers that pass theMOD 10 check (Luhn formula).Usefull for testing e-commerce sites during development.Copyright 2003-2012 Graham KingThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"""# Different naming convention, because translated from PHP# pylint: disable=C0103from random import Randomimport copyvisaPrefixList = [ ['4', '5', '3', '9'], ['4', '5', '5', '6'], ['4', '9', '1', '6'], ['4', '5', '3', '2'], ['4', '9', '2', '9'], ['4', '0', '2', '4', '0', '0', '7', '1'], ['4', '4', '8', '6'], ['4', '7', '1', '6'], ['4']]mastercardPrefixList = [ ['5', '1'], ['5', '2'], ['5', '3'], ['5', '4'], ['5', '5']]amexPrefixList = [['3', '4'], ['3', '7']]discoverPrefixList = [['6', '0', '1', '1']]dinersPrefixList = [ ['3', '0', '0'], ['3', '0', '1'], ['3', '0', '2'], ['3', '0', '3'], ['3', '6'], ['3', '8']]enRoutePrefixList = [['2', '0', '1', '4'], ['2', '1', '4', '9']]jcbPrefixList = [['3', '5']]voyagerPrefixList = [['8', '6', '9', '9']]def completed_number(prefix, length): """ 'prefix' is the start of the CC number as a string, any number of digits. 'length' is the length of the CC number to generate. Typically 13 or 16 """ ccnumber = prefix # generate digits while len(ccnumber) < (length - 1): digit = str(generator.choice(range(0, 10))) ccnumber.append(digit) # Calculate sum sum = 0 pos = 0 reversedCCnumber = [] reversedCCnumber.extend(ccnumber) reversedCCnumber.reverse() while pos < length - 1: odd = int(reversedCCnumber[pos]) * 2 if odd > 9: odd -= 9 sum += odd if pos != (length - 2): sum += int(reversedCCnumber[pos + 1]) pos += 2 # Calculate check digit checkdigit = ((sum / 10 + 1) * 10 - sum) % 10 ccnumber.append(str(checkdigit)) return ''.join(ccnumber)def credit_card_number(rnd, prefixList, length, howMany): result = [] while len(result) < howMany: ccnumber = copy.copy(rnd.choice(prefixList)) result.append(completed_number(ccnumber, length)) return resultdef output(title, numbers): result = [] result.append(title) result.append('-' * len(title)) result.append('\n'.join(numbers)) result.append('') return '\n'.join(result)## Main#generator = Random()generator.seed() # Seed from current timeprint("darkcoding credit card generator\n")mastercard = credit_card_number(generator, mastercardPrefixList, 16, 10)print(output("Mastercard", mastercard))visa16 = credit_card_number(generator, visaPrefixList, 16, 10)print(output("VISA 16 digit", visa16))visa13 = credit_card_number(generator, visaPrefixList, 13, 5)print(output("VISA 13 digit", visa13))amex = credit_card_number(generator, amexPrefixList, 15, 5)print(output("American Express", amex))# Minor cardsdiscover = credit_card_number(generator, discoverPrefixList, 16, 3)print(output("Discover", discover))diners = credit_card_number(generator, dinersPrefixList, 14, 3)print(output("Diners Club / Carte Blanche", diners))enRoute = credit_card_number(generator, enRoutePrefixList, 15, 3)print(output("enRoute", enRoute))jcb = credit_card_number(generator, jcbPrefixList, 16, 3)print(output("JCB", jcb))voyager = credit_card_number(generator, voyagerPrefixList, 15, 3)print(output("Voyager", voyager))
The running result is as follows:
darkcoding credit card generatorMastercard----------5249241445603178547466213173976855815174504416615588253309068355551477494403007951228267495282875152966434002124526812798731229253856760741980875330181839518097VISA 16 digit-------------4539503803848378471697305284743645561499362603764486565514724761455630935497816044865604855911584916213564870669448670467169993445328391001931924486613519985266VISA 13 digit-------------49299055599734556870828321491686820021645561899160564024007171180American Express----------------376197656730660342421777432696342896016604918343458311286898374543958196088Discover--------601167618045669260112989535678766011699666196053Diners Club / Carte Blanche---------------------------300666433085833830231548185938251784096120enRoute-------214935400146170201435309964331201450317314858JCB---350664178014988035618568560657013508395818816022Voyager-------869984254736122869938197246102869921075232782
I hope this article will help you with Python programming.