Dernière activité 10 months ago

這段程式碼定義了一個 PasswordGenerator 類別,依據指定的類型("easy" 或 "hard")和密碼長度,隨機產生密碼。其中 "easy" 模式生成的密碼僅包含去除易混淆字元的大小寫英文字母和數字,而 "hard" 模式則包含了所有大小寫字母及標點符號。程式最後示範如何使用該生成器產生 10 個隨機密碼。

Révision 8a7aff421cb4e2802445f6d5e316306e547859b4

secure_password_generator.py Brut
1import random
2import string
3
4
5class PasswordGenerator:
6 def __init__(self, type, length=12):
7
8 self.length = length
9 self.type = type
10
11 def generate_password(self):
12 if self.type == "easy":
13 # 存儲大小寫英文字母和數字,避免使用可能有歧義的字符
14 characters = (
15 string.ascii_uppercase.replace("O", "")
16 + string.ascii_lowercase.replace("l", "")
17 + string.digits.replace("0", "").replace("1", "")
18 )
19 # 隨機選擇 self.length 個字符
20 password = "".join(random.choice(characters) for i in range(self.length))
21 elif self.type == "hard":
22 # 存儲大小寫英文字母和罕見的字元
23 characters = string.ascii_letters + string.punctuation
24 # 隨機選擇 self.length 個字符
25 password = "".join(random.choice(characters) for i in range(self.length))
26 return password
27
28
29# 建立一個長度為 12 的密碼產生器物件,用來產生 "Easy to read" 的密碼
30generator = PasswordGenerator("easy")
31
32# 建立一個長度為 10 的密碼產生器物件,用來產生 "Easy to read" 的密碼
33# generator = PasswordGenerator("easy", 10)
34
35
36# 產生 10 個隨機密碼
37for i in range(10):
38 print(generator.generate_password())
39