File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed
Utility_scripts/src/key_generator Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ import random
2+
3+
4+ class Key :
5+
6+ def __init__ (self , key = '' ):
7+ if key == '' :
8+ self .key = self .generate ()
9+ else :
10+ self .key = key .lower ()
11+
12+ def verify (self ):
13+ score = 0
14+ check_digit = self .key [0 ]
15+ check_digit_count = 0
16+ chunks = self .key .split ('-' )
17+ for chunk in chunks :
18+ if len (chunk ) != 4 :
19+ return False
20+ for char in chunk :
21+ if char == check_digit :
22+ check_digit_count += 1
23+ score += ord (char )
24+ if score == 1772 and check_digit_count == 5 :
25+ return True
26+ return False
27+
28+ def generate (self ):
29+ key = ''
30+ chunk = ''
31+ check_digit_count = 0
32+ alphabet = 'abcdefghijklmnopqrstuvwxyz1234567890'
33+ while True :
34+ while len (key ) < 25 :
35+ char = random .choice (alphabet )
36+ key += char
37+ chunk += char
38+ if len (chunk ) == 4 :
39+ key += '-'
40+ chunk = ''
41+ key = key [:- 1 ]
42+ if Key (key ).verify ():
43+ return key
44+ else :
45+ key = ''
46+
47+ def __str__ (self ):
48+ valid = 'Invalid'
49+ if self .verify ():
50+ valid = 'Valid'
51+ return self .key .upper () + ':' + valid
52+
53+
54+ def main ():
55+ generated_key = Key ()
56+ print (generated_key )
57+
58+ if __name__ == "__main__" :
59+ main ()
You can’t perform that action at this time.
0 commit comments