title: 密码生成器 description: 构建一个脚本,从用户控制的字符集生成随机密码。
密码生成器
Zee 嘿,所以公司发了一份关于密码卫生的安全备忘录,我被特别点名了。太尴尬了。你能给我做一个小密码生成器吗?我给它一个长度,对数字和符号说是或否,它就能生成我真正能用的东西。我想用"password123"作为所有账户的密码不是最好的办法...
你将要构建什么
Password length: 12
Include numbers? (y/n): y
Include symbols? (y/n): y
Generated: k7#mP9xQ!2aL你需要的知识
提示
先构建字符池。 从一个空的允许字符列表开始。始终添加字母,然后根据用户的选择有条件地添加数字或符号。
string 模块节省工作。 它为你提供了现成的字符串:string.ascii_letters、string.digits、string.punctuation。无需手动输入。
选择,然后连接。 每次使用 random.choice() 选择一个字符,对用户要求的长度重复,然后将结果连接成一个字符串。
进一步扩展
基本生成器工作后:
- 保证规则。 如果用户要求了数字,确保结果中至少出现一个数字。符号也是一样。纯随机选择可能会遗漏它们。
- 批量生成。 让用户一次请求多个密码并显示所有密码。
- 强度指示器。 生成后,打印一个简要的等级:弱(仅字母)、中等(字母 + 数字)、强(字母 + 数字 + 符号)。

