测试密码的强度

在某些网站注册时常常会要求设置密码,网站也会根据输入密码的字符特点给出相应的提示,如密码过短、强度差、强度中等、强度强等。这又是怎么实现的呢?看下面代码:

<input type="password" name="pass" id="pass" /> 
<span id="passstrength"></span>
//下面的正则表达式建议各位收藏哦,项目上有可能会用得着
$('#pass').keyup(function(e) {
      //密码为八位及以上并且字母数字特殊字符三项都包括
     var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");

  //密码为七位及以上并且字母、数字、特殊字符三项中有两项,强度是中等 
     var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
     var enoughRegex = new RegExp("(?=.{6,}).*", "g");
     if (false == enoughRegex.test($(this).val())) {
             $('#passstrength').html('More Characters');
     } else if (strongRegex.test($(this).val())) {
             $('#passstrength').className = 'ok';
             $('#passstrength').html('Strong!');
     } else if (mediumRegex.test($(this).val())) {
             $('#passstrength').className = 'alert';
             $('#passstrength').html('Medium!');
     } else {
             $('#passstrength').className = 'error';
             $('#passstrength').html('Weak!');
     }
     return true;
});
原文链接地址:http://segmentfault.com/a/1190000003937249#articleHeader9
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
密码强度是指密码的安全程度,即密码对于破解者来说有多难以猜测或者破解。在Python中,可以通过一些方法来评估密码强度。 一种常见的方法是使用正则表达式来检查密码是否符合一定的规则,例如包含大写字母、小写字母、数字和特殊字符等。可以使用re模块来实现正则表达式的匹配。 另一种方法是计算密码的熵值,即密码中包含的信息量。熵值越高,密码越难以被猜测或者破解。可以使用math模块来计算熵值。 以下是一个简单的示例代码,用于评估密码强度: ```python import re import math def check_password_strength(password): # 检查密码是否符合规则 if not re.match(r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$", password): return "密码不符合规则" # 计算密码的熵值 entropy = 0 characters = set(password) for char in characters: p = password.count(char) / len(password) entropy -= p * math.log2(p) # 根据熵值评估密码强度 if entropy < 2: return "密码强度较弱" elif entropy < 3: return "密码强度一般" else: return "密码强度较高" # 测试 password = input("请输入密码:") strength = check_password_strength(password) print(strength) ``` 请注意,以上代码只是一个简单的示例,实际上评估密码强度是一个复杂的问题,需要考虑更多的因素。在实际应用中,建议使用成熟的密码强度评估库或者算法来确保密码的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值