【发布时间】:2015-11-18 08:15:53
【问题描述】:
我正在尝试为具有以下密码要求的 Active Directory 生成随机密码:至少 8 个字符、至少一个特殊字符、至少一个数字、至少一个小写字母和至少一个大写字母。
通过以下代码,我可以生成一个随机密码并检查它是否包含特殊字符。在找到特殊字符之前会生成新密码。
special_char = "!@%/()=?+.-"
password_string = "".join([random.choice(string.ascii_lowercase + string.ascii_digits + string.ascii_uppercase + special_char) for n in range(8)])
while any(c in password_string for c in special_char) is not True:
password_string = "".join([random.choice(string.ascii_lowercase + string.ascii_digits + string.ascii_uppercase + special_char) for n in range(8)])
以下问题是它只检查特殊字符并生成新密码可能会摆脱假设存在的其他要求。如何有效地实施 AD 密码要求?感谢您的帮助。
【问题讨论】:
-
另外说明:不要使用
(boolean expr) is not True;使用not (boolean expr)。