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

title: 密码生成器 description: 构建一个脚本,从用户控制的字符集生成随机密码。

密码生成器

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() 选择一个字符,对用户要求的长度重复,然后将结果连接成一个字符串。

进一步扩展

基本生成器工作后:

  • 保证规则。 如果用户要求了数字,确保结果中至少出现一个数字。符号也是一样。纯随机选择可能会遗漏它们。
  • 批量生成。 让用户一次请求多个密码并显示所有密码。
  • 强度指示器。 生成后,打印一个简要的等级:弱(仅字母)、中等(字母 + 数字)、强(字母 + 数字 + 符号)。