|
发表于 2021-10-30 17:18:45
|
显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-30 17:20 编辑
- def levels(p: str) -> str:
- """
- 鉴别密码安全性等级
- 低级:由数字或字母其中一种组合组成,长度小于 8 位
- 中级:由数字、字母、或特殊字符任意两种组合组成,长度大于等于 8 位、小于 16 位
- 高级:由数字、字母、和特殊字符三种组合组成,以字母开头,长度大于等于 16 位
- """
- symbol = [chr(i) for i in [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58,\
- 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126]]
- a = any([bool(i.isdigit()) for i in p])
- b = any([bool(i.isalpha()) for i in p])
- c = any([bool(i in symbol) for i in p])
- if len(p) < 8:
- return "密码等级:低级" if all([True for i in p if i.isalnum()]) else "密码不符合任何等级"
- elif len(p) < 16:
- return "密码等级:中级" if (a and b and not c) or (b and c and not a) or (c and a and not b) else "密码不符合任何等级"
- elif len(p) >= 16 and p[0].isalpha():
- return "密码等级:高级" if a and b and not p.isalnum() else "密码不符合任何等级"
- else: return "密码不符合任何等级"
- def main():
- print(levels.__doc__)
- print(levels(input("请输入您的密码:")))
- if __name__ == "__main__":
- main()
复制代码 |
|