Python Random Password Generator

Dopo la creazione del Nuget - PasswordGeneratorHelper ho deciso di provare a replicare la creazione della password in python per continuare il mio percorso di studio.

Cosa ho imparato da questo esperimento? Ho imparato diverse cose interessanti. Ad esempio come validare l’acquisizione di un numero intero da parte dell’utente e come rendere random i caratteri di presenti una stringa di testo.

Password Generator

Di seguito troverete lo script creato per l’occasione.

 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
import random

def passwordLen():

    message="Password Lenght: "

    while True:
        try:
            result = int(
                input(message)
            )       
        except ValueError:
            print("Input is not valid! Only number")
            continue
        else:
            return result 
            break 

def main():
    
    passwordLenght = passwordLen()

    chars = []

    for i in range(26):   
        # UpperCase  
        chars.append( chr(65 + i) )
         # LowerCase
        chars.append( chr(97 + i) )

    for i in range(10):
        # Number
        chars.append( chr(48 + i) )

    for i in range(16):
        # Special Chars 1
        chars.append( chr(32 + i) )

    for i in range(7):
        # Special Chars 2
        chars.append( chr(58 + i) )

    for i in range(6):
        # Special Chars 3
        chars.append( chr(91 + i) )

    for i in range(4):
        # Special Chars 4
        chars.append( chr(123 + i) )

    random.shuffle(chars)

    randomPassword  = "".join(chars)

    randomPassword = randomPassword[0:passwordLenght]
   
    print(randomPassword)

    exit()

if __name__ == "__main__":
    main()

La parte interessante (una volta creato l’array con la lista di caratteri) e’ il modo in cui vengono ordinati in maniera random, concatenati ed estratti in parte.

1
2
3
4
5
random.shuffle(chars)

randomPassword  = "".join(chars)

randomPassword = randomPassword[0:passwordLenght]

Se volete vedere lo script (ed anche gli altri creati per lo studio di Python) sul mio GitHub vi lascio il link del repository python-training-example.

Happy Coding!