我有以下代码为强度测试密码:密码测试在Python
import string
def golf(password):
if len(password) >= 10:
if any(char.isdigit() for char in password):
if any(string.punctuation for char in password):
if any(char.isalpha() for char in password):
if any(char.isupper() for char in password):
if any(char.islower() for char in password):
return True
return False
我知道这是可以做的更好!它需要测试以下...
密码将被认为是足够强大,如果它 有至少10个字符 至少包含一个数字 包含至少一个大写字母 包含至少一个小写字母。密码可能只包含ASCII拉丁字母或数字,但否标点符号。
编辑
确定为别人我得到它下降到与正则表达式如下。
import re
def golf(password):
return re.match(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.{10,30}).+$', password)
显然,它仍然是短...
你不能使用'和'? –
'如果有(字符串中的字符串的密码):'看起来不对 –
你有没有考虑过正则表达式匹配? –