Skip to content
This page has been auto-translated and may contain errors.View in English

密码生成器

Zee 嘿,指挥部发了一份关于密码安全的备忘录,里面专门点名了我。太尴尬了。你能做一个小型的密码生成器吗?我输入长度,选择是否包含数字和符号,它就生成一个我可以实际使用的密码。看来给所有账户都用 "password123" 确实不是个好主意……

你要构建什么

Password length: 12
Include numbers? (y/n): y
Include symbols? (y/n): y

Generated: k7#mP9xQ!2aL

你将需要

提示

先构建字符池。 从一个空的允许字符列表开始。始终添加字母,然后根据用户的选择有条件地添加数字或符号。

string 模块能省事。 它为你准备好了现成的字符串:string.ascii_lettersstring.digitsstring.punctuation。无需手动输入。

先挑选,再拼接。 使用 random.choice() 一次挑选一个字符,按照用户要求的长度重复操作,然后将结果连接成一个字符串。

进一步探索

基础的生成器跑通之后:

  • 确保规则生效。 如果用户要求包含数字,确保结果中至少出现一个数字。符号同理。纯随机挑选可能会漏掉它们。
  • 批量生成。 让用户一次性请求多个密码,并全部显示出来。
  • 强度指示器。 生成后,打印一个简短的评级:弱(仅字母)、中(字母 + 数字)、强(字母 + 数字 + 符号)。