密码验证,密码强度正则表达式
原文地址:http://blog.sina.com.cn/s/blog_46ee420b0100yi3g.html
注:还未验证- -,先记录下来
当用户登录网站时,一般要求用户提供登录该网站的用户名称和密码。从某种意义上说,密码的复杂程度越高,用户的信息安全性越高。因此,很多网站在注册用户信息或修改用户密码时,往往会提供一个密码强度的说明,从而提醒用户使用高强度的密码。 目前来说,密码字符可以分为3种:数字、字母和特殊字符(即除数字、字母之外的字符)。用户密码包含上述3种字符种的种类越多,密码的安全性越高。用户密码只含其中一种的安全性是最低的,如123455、abcdef等。其次是含上述2种字符的密码,如123abc、123!@#等。密码强度最好的是:包含上述3种字符,如123QAZ!@#。 注意:本小节中的特殊字符包括`、-、=、、[、]、;、'、,、.、/、~、!、@、#、$、%、^、&、*、(、)、_、+、|、?、>、<、"、:、{和}字符。 1.只包含数字的密码验证 如果密码中只包含数字,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含数字的密码。 d+ 该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含数字的密码。 d{6,} 2.只包含字母的密码验证 如果密码中只包含字母,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含字母的密码。 [a-zA-Z]+ 该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含字母的密码。 [a-zA-Z]{6,} 3.只包含特殊字符的密码验证 如果密码中只包含特殊字符,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含特殊字符的密码。 [-`=[];',./~!@#$%^&*()_+|{}:"<>?]+ 正则表达式(72)解释: q q q q 该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含特殊字符的密码。 {6,} 使用工具Regex Tester测试正则表达式(73),结果如图4.34所示。
4.4.5 密码验证(2) 4.当且仅当含数字和字母的密码验证 如果密码当且仅当包含数字和字母,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证当且仅当包含数字和字母的密码。 [da-zA-Z]*d+[a-zA-Z]+[da-zA-Z]* 正则表达式(74)解释: 使用工具Regex Tester测试正则表达式(74),结果如图所示。
5.当且仅当含数字和特殊字符的密码验证 如果密码当且仅当包含数字和特殊字符,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证当且仅当包含数字和特殊字符的密码。 [-d`=[];',./~!@#$%^&*()_+|{}:"<>?]*d+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+[-d`=[];',./~!@#$%^&*()_+|{}:"<>?]* 正则表达式(75)解释: 使用工具Regex Tester测试正则表达式(75),结果如图所示。
6.当且仅当包含字母和特殊字符的密码验证
如果密码当且仅当包含字母和特殊字符,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证只包含字母和特殊字符的密码。 [-a-zA-Z`=[];',./~!@#$%^&*()_+|{}:"<>?]*[a-zA-Z]+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+[-a-zA-Z`=[];',./~!@#$%^&*()_+|{}:"<>?]* 正则表达式(76)解释: 使用工具Regex Tester测试正则表达式(76),结果如图所示。
7.当且仅当包含数字、字母和特殊字符的密码验证 如果密码当且仅当包含数字、字母和特殊字符,那么该密码的强度是高强度。当然,它的安全性相对比较好。以下正则表达式能够验证当且仅当包含数字、字母和特殊字符的密码。 [-da-zA-Z`=[];',./~!@#$%^&*()_+|{}:"<>?]* ( (d+[a-zA-Z]+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+) |(d+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+[a-zA-Z]+) #数字开头 |([a-zA-Z]+d+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+) #字母开头 |([a-zA-Z]+[-`=[];',./~!@#$%^&*()_+|{}:"<>?]+d+) #字母开头 |([-`=[];',./~!@#$%^&*()_+|{}:"<>?]+d+[a-zA-Z]+) #特殊字符开头 ]+[a-zA-Z]+d+) #特殊字符开头 ) ]* 正则表达式(77)解释: 匹配型如“字母+特殊字符+数字”类型的字符串。 匹配型如“特殊字符+数字+字母”类型的字符串。 匹配型如“特殊字符+字母+数字”类型的字符串。 使用工具Regex Tester测试正则表达式(77),结果如图所示。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- BlazeDS实现Java和Flex通信的Demo
- ruby-on-rails – 迁移不能在Heroku上工作
- reactjs – React.js 6.x待处理的提案更新中不支持装饰器
- 【翻译】两种高性能I/O设计模式(Reactor/Proactor)的比较
- 如何在sqlite中连接字符串和padding
- ref和out有什么区别? (C#)
- ruby-on-rails – 您是否可以重新定义ruby中的课程?或者这
- react native 在window 7上配置开发环境-Andorid
- cocos2d-x 引擎分析:如何实现跨平台
- React Native: react-native init 到底做了什么