密码强度

时间:2015-10-03 16:40:20

标签: python python-2.7

我的班级任务,即使我尝试了所有内容,我的代码似乎也出现了问题。我应该制作一个能够检查一个人密码强度的小程序。谁能告诉我我做错了什么?非常感谢。

p = raw_input("Enter password") if len(p) <= 6:
    print("Weak1") elif len(p) > 6 and len(p) <=12:
    if p.lower:
        print("Weak2")
    elif p.upper() or int():
        print("Medium4") elif len(p) > 12:
    if p.lower and not p.upper():
        print("Strong6")
    elif p.upper() and p.lower():
        print("Strong7")
    elif int() and p.lower():
        print("Strong9")

3 个答案:

答案 0 :(得分:0)

你的语法有很多问题。重新格式化代码后, 考虑这些内置方法。 full list here

>>> password = "mylowercasepassword"
>>> password.islower()
True
>>> password2 = "MYSPRPSSWRD"
>>> password2.islower()
False
>>> password2.isupper()
True
>>> pwd = "MySvp3rStr0ngpw4"
>>> pwd.isalpha()
False
>>> pwd.isalnum()
True

不使用始终评估p.lower()的{​​{1}},p.upper()等,而是使用下面显示的方法。

您可以重写您的代码,但尝试了解更多真正的解决方案。顺便说一句,我修复了你代码的一些部分。

true

答案 1 :(得分:0)

你做错了是你发明了自己的密码强度估算器,它不是基于最好的原则和研究,而是你自己发明的规则:)

exist a Python library zxcvbn,可提供更真实的密码强度估算。

请注意,这可能无法满足您的需求,但如果您要构建真实,安全的服务,那么您将会采取哪些措施。

答案 2 :(得分:0)

您需要使用import sys, os try: import re except: os.system("python -m pip install re") import re try : import string except: os.system("python -m pip install string") import string password = (raw_input("Type the Password : ")) p = password strength = [] def AnalyzePassword(): total = 0 for k in strength: total = total + int(k) total_analyze = int(total) + 0.0 analyzed = int( (total_analyze) * 10) analyzed = str(analyzed).replace("00", "0") result = analyzed return result def PassLvlChecker(passd): if len(passd) < 18: strength.append("-4") elif len(passd) > 18: strength.append("4") if passd.isalpha(): strength.append("2") if bool(re.compile('[\W]+').findall(passd)) is True: strength.append("7") if bool(re.compile("[A-Z]+").findall(passd)) is True: strength.append("5") if bool(re.compile("[0-9]+").findall(passd)) is True: strength.append("9") if len(passd) > 18 and \ bool(re.compile('[\W]+').findall(passd)) is True and\ bool(re.compile("[A-Z]+").findall(passd)) is True and\ bool(re.compile("[0-9]+").findall(passd)) is True: strength.append("15") strength.append(str(len(passd))) return AnalyzePassword() def checkAgain(pas): if pas == '': p = raw_input("Type the Password : ") checkAgain(p) else: passStrength = PassLvlChecker(password) print "Your password is", str((int(passStrength))) + "%", "Secured!" if p == '': p = (raw_input("Type the Password : ")) checkAgain(p) else: passStrength = PassLvlChecker(password) print "Your password is", str((int(passStrength))) + "%", "Secured!" 模块来查找String是否包含大写和小写,多少大写和小写等。 这是我做的一个简单的实现。 它仍然是一个傻瓜脚本!但仍然有效!

{{1}}