How to randomly generate a credit card number using Python

Source: Internet
Author: User
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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.