码迷,mamicode.com
首页 > 其他好文 > 详细

密码复杂度检查函数

时间:2016-05-10 02:17:15      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

密码复杂度检测.py

 1 import  re
 2 ‘‘‘
 3 接口调用示例:
 4 import 密码复杂度检测 as pc
 5 
 6 while True:
 7     str1 = input("请输入密码> ").strip()
 8     if pc.check_password_complexity(str1,2):
 9         print("%s复杂度符合要求"%str1)
10         break
11 
12 
13 密码复杂度检查,包括两种复杂度检查,
14 level=1时,
15     密码不能包含中文,
16     长度在10到20个字符之间
17     密码必须已字母或下划线开始
18     密码必须包含字母、数字、特殊字符
19 level-2时,
20     包含level=1的条件
21     不能有一个字符连续出现超过字符长度减8次的情况,比如字符长度是10,则不能有一个字符连续出现2次的情况
22 ‘‘‘
23 def check_password_complexity(p,level):
24     """
25 
26     :param p: 传递进来的待检测的密码
27     :param level: 需要检查的强度
28     :return: 如果密码复杂度符合要求则返回True,否则返回False
29     """
30     # 判断等级是否是1或2
31     assert level in (1,2),level密码强度检查只能是1或2
32     # 判断是否包含中文
33     zhPattern = re.compile(u[\u4e00-\u9fa5]+)
34     if zhPattern.search(p):
35         print("\033[1;31;40m密码不能包含中文!\033[0m")
36     # 检查密码长度
37     elif not 10 <= len(p) <= 20:
38         print("\033[1;31;40m长度不符合要求,必须在10到20个字符之间\033[0m")
39     # 检查密码是否已字母或下划线开头
40     elif not re.match("^[a-zA-Z_]",p):
41         print("\033[1;31;40m密码必须以字母或下划线开头\033[0m")
42     # 检查是否包含数字字母和特殊字符
43     elif not (re.search([\d],p) and re.search([a-zA-Z],p) and re.search([\W],p)):
44         print("\033[1;31;40m密码必须包含数字字母和特殊字符\033[0m")
45     # 检查密码是否过于简单
46     elif level == 1:
47         return True
48     elif level == 2:
49         # 高级密码复杂度检查,检查字符是否连续出现超过字符串长度减8次,更高级检查待开发
50         l = len(p)-8
51         # print(l)
52         p_temp = p[:9]
53         for char in p_temp:
54             # chars = re.search(r‘[%s]{%d,}‘%(char,l),p)
55             if char*l in p:
56                 print("您的密码过于简单")
57                 print("%s重复出现超过%d次!重复次数不能超过字符长度减8次"%(char,l))
58                 return False
59             else:
60                 return True
61 
62 if __name__ == __main__:
63     print("请使用\033[1;31;0mheck_password_complexity\033[0m(\033[1;32;0mpassword,level\033[0m)调用此函数")

 

密码复杂度检查函数

标签:

原文地址:http://www.cnblogs.com/owasp/p/5476187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!