Python关于检测密码强度的问题

Python020

Python关于检测密码强度的问题,第1张

import re

def check_password(passwd):

    if re.match(r'^(?=.*[A-Za-z])(?=.*[0-9])\w{6,}$',passwd):

        print "password %s correct"%passwd

        return True

    else:

        print "password %s is invalid"%passwd

        return False

函数check_password检查passwd必须由6个或以上的普通字符组成,必须有一个英文数字,一个英文字母,成功返回True,不符要求返回False

我们的任务就是把密码复杂度与强度量化,然后用计算机语言表达出来。

密码复杂度很好定义,长度,大写字母,小写字母,数字和特殊符号,密码包含的特征越多也就越,强度也就越高。我们设置个等级来评测密码强度,分别是:terrible,simple,medium,strong。

不同的应用可能对密码强度的要求一样,我们引入最小长度(min_length)和最小特征数(mim_types)变成可配置选项。这样我们就可以检测密码包含的特征

通过不同的定义来写不同的判断,注意到逻辑的顺序就行,判断长度,判断出现的字符种类

还有就是自己跟着打的时候不要打错

然后没有什么了

然后就是很尴尬的迷之出错

设置一个变量strength_level用于记录密码的强度,初始为0满足一个条件,对其加1,长度判断:使用len()方法,包含数字判断:使用snumeric()方法,包含字母判断:使用salpha()方法,如果strength_level等于3,密码强度合格,否则不合格。

密码强度:是指一个密码对抗猜测或时暴力破解的有效程度,一般是指一个未授权的访问者得到正确密码的平均尝试次数,强密码可以降低安全漏洞的整体风险。

Python是一种广泛使用的解释型、高级和通用的编程语言Python由荷兰数学和计算机科学研究学会的GuidovanRossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言Python提供了高效的高级数据结构,还能简单有效地面向对象编程。