-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpassword generator.py
65 lines (44 loc) · 1.73 KB
/
password generator.py
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
import string
import random
## characters to generate password from
alphabets = list(string.ascii_letters)
digits = list(string.digits)
special_characters = list("!@#$%^&*()")
characters = list(string.ascii_letters + string.digits + "!@#$%^&*()")
def generate_random_password():
## length of password from the user
length = int(input("Enter password length: "))
## number of character types
alphabets_count = int(input("Enter alphabets count in password: "))
digits_count = int(input("Enter digits count in password: "))
special_characters_count = int(input("Enter special characters count in password: "))
characters_count = alphabets_count + digits_count + special_characters_count
## check the total length with characters sum count
## print not valid if the sum is greater than length
if characters_count > length:
print("Characters total count is greater than the password length")
return
## initializing the password
password = []
## picking random alphabets
for i in range(alphabets_count):
password.append(random.choice(alphabets))
## picking random digits
for i in range(digits_count):
password.append(random.choice(digits))
## picking random alphabets
for i in range(special_characters_count):
password.append(random.choice(special_characters))
## if the total characters count is less than the password length
## add random characters to make it equal to the length
if characters_count < length:
random.shuffle(characters)
for i in range(length - characters_count):
password.append(random.choice(characters))
## shuffling the resultant password
random.shuffle(password)
## converting the list to string
## printing the list
print("".join(password))
## invoking the function
generate_random_password()