0

我一直在尝试让密码创建者为评估创建密码,其中需要的一件事是,如果密码中没有至少 2 个数字,它将打印一个错误,要求输入至少两个数字的密码数字。我不知道该怎么做,我只是想知道你能否给我一点提示,告诉我如何在代码中做到这一点。

提前致谢

4

3 回答 3

2

您可以尝试使用正则表达式

import re

passw = 'hell1owo2rld'
if re.match('.*[0-9].*[0-9].*', passw):
    print 'Password is ok'
else
    print 'Please use at least two numbers'
于 2013-08-23T03:08:51.890 回答
0

您可以使用字符串方法、列表推导和len

if len([x for x in your_password_variable if x.isdigit()]) >= 2:
    print "OK"
else:
    print "You need at least 2 numbers"
于 2013-08-23T04:17:51.800 回答
0

如果问题确实是创建一个新密码,我会解释如何做,但没有代码:

random.SystemRandom()如果您想要安全密码,请使用。

首先从允许的字符集中创建 N 个字符,其中 N 是密码的长度。然后检查是否至少有 2 个数字。如果少于 2 个数字字符,则删除 1 或 2 个非数字字符并添加随机数字,以便至少有这 2 个数字。最后使用shuffle()来置换您的密码。这样你的密码就有可能的最大熵。

于 2013-08-23T04:21:35.473 回答