【发布时间】:2014-01-02 03:40:21
【问题描述】:
我正在尝试制作一个密码强度模拟器,它要求用户输入密码,然后返回分数。
我正在使用:
islanum()
isdigit()
isupper()
试试看输入的密码有多好。
我希望它不是返回布尔值,而是评估密码的每个字符,然后程序将所有“真”值相加并将其转换为分数。示例代码:
def upper_case():
points = int(0)
limit = 3
for each in pword:
if each.isupper():
points = points + 1
return points
else:
return 0
任何帮助将不胜感激!谢谢!!
【问题讨论】:
-
您是否有任何示例代码可以显示您从哪里开始或到目前为止您已经尝试过什么?
-
你几乎有这个权利。您只需要计算一个分数,然后在迭代后返回(不在内部)。
-
也不需要
points = int(0)。points = 0很好。 -
我对密码强度理论的了解并不惊人,但如果你所有的字母都是大写的,那肯定和全部小写一样弱?您的代码背后的想法是给大写字符加分,但我认为您最好混合使用。例如,“password”和“PASSWORD”同样弱,但“PAsSWorD”更强(或至少与带有单词“password”的密码一样强:P)
-
您可能希望将
upper_case()重命名为get_score()并使用一些if/elif分支来根据您看到的字符计算适当的分数。
标签: python function passwords return