Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, random, string
- char2num = {
- 'A': 10,
- 'B': 11,
- 'C': 12,
- 'D': 13,
- 'E': 14,
- 'F': 15,
- 'G': 16,
- 'H': 17,
- 'I': 34,
- 'J': 18,
- 'K': 19,
- 'M': 21,
- 'N': 22,
- 'O': 35,
- 'P': 23,
- 'Q': 24,
- 'T': 27,
- 'U': 28,
- 'V': 29,
- 'W': 32,
- 'X': 30,
- 'Z': 33
- }
- mulc = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1]
- def check(s):
- n = []
- n.append(char2num[s[0]] // 10)
- n.append(char2num[s[0]] % 10)
- for i in range(1, len(s)):
- n.append(ord(s[i])-ord('0'))
- acc = 0
- for i, j in zip(n, mulc):
- acc += i * j
- return acc % 10 == 0
- def gen():
- ch = random.choice(string.ascii_uppercase)
- gender = random.choice(['1', '2'])
- while True:
- t = ch + gender
- for _ in range(8):
- t += random.choice(string.digits)
- if check(t):
- return t
- def usage():
- print('{} {}'.format(sys.argv[0], '<ID>'))
- def main():
- if '-g' in sys.argv:
- print(gen())
- sys.exit(0)
- else:
- if len(sys.argv) == 2:
- print('{} is {}'.format(sys.argv[1], 'Valid' if check(sys.argv[1]) else 'Invalid'))
- sys.exit(0)
- usage()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement