How to randomly generate a credit card number using Python

Source: Internet
Author: User

How to randomly generate a credit card number using Python

This example describes how to randomly generate a credit card number using Python. 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.

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

#! /Usr/bin/python

"""

Gencc: A simple program to generate credit card numbers that pass

MOD 10 check (Luhn formula ).

Usefull for testing e-commerce sites during development.

Copyright 2003-2012 Graham King

This program is free software; you can redistribute it and/or modify

It under the terms of the GNU General Public License as published

The 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

MERCHANTABILITY or fitness for a particle PURPOSE. See

GNU General Public License for more details.

You shoshould have your ed a copy of the GNU General Public License

Along with this program; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

"""

# Different naming convention, because translated from PHP

# Pylint: disable = C0103

From random import Random

Import copy

VisaPrefixList = [

['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, howlist ):

Result = []

While len (result)

Ccnumber = copy. copy (rnd. choice (prefixList ))

Result. append (completed_number (ccnumber, length ))

Return result

 

Def 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 time

Print ("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 cards

Discover = 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:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

Darkcoding credit card generator

 

Mastercard

----------

5249241445603178

5474662131739768

5581517450441661

5588253309068355

5514774944030079

5122826749528287

5152966434002124

5268127987312292

5385676074198087

5330181839518097

 

VISA 16 digit

-------------

4539503803848378

4716973052847436

4556149936260376

4486565514724761

4556309354978160

4486560485591158

4916213564870669

4486704671699934

4532839100193192

4486613519985266

 

VISA 13 digit

-------------

4929905559973

4556870828321

4916868200216

4556189916056

4024007171180

 

American Express

----------------

376197656730660

342421777432696

342896016604918

343458311286898

374543958196088

 

Discover

--------

6011676180456692

6011298953567876

6011699666196053

 

Diners Club/Carte Blanche

---------------------------

30066643308583

38302315481859

38251784096120

 

EnRoute

-------

214935400146170

201435309964331

201450317314858

 

JCB

---

3506641780149880

3561856856065701

3508395818816022

 

Voyager

-------

869984254736122

869938197246102

869921075232782

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.