JavaScript实现密码强度实时验证


Posted in Javascript onMarch 18, 2020

JavaScript实现密码强度实时验证,供大家参考,具体内容如下

在网络服务中,为了保证用户的私密信息足够安全,会要求用户输入具有一定安全级别的密码,这样可以更好的防止他人盗用。比如在注册一些游戏账号时,如果输入纯数字或纯英文字符低于6位,就会提示密码强度太低,请重新输入。一些密码强度验证的方法都是计算字符的类型,然后分类加权累算。权重越高,相应的强度也就越高。

具体的写法及实现方式有很多种,本文只介绍其中一种方案

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>密码强度实时验证</title>

</head>
<body>
 <h2>密码强度实时验证</h2>
 <input id="passwordStrength" data-hint='请输入密码' type="password" ><span id="showStrength"></span>

 <script type="text/javascript">

  window.onload = function () {
   function setCss(_this,cssOption){
   //判断节点类型
   if (!_this || _this.nodeType ===3 || _this.nodeType === 8 ||!_this.style) {
    return;
   }
   for(var cs in cssOption){
    _this.style[cs] = cssOption[cs];
   }
   return _this;
  } 

  function trim(chars){
   return (chars ||"").replace(/^(\s|\u00a0)+|(\s|\u00a0)+$/g,"");
  }
  function passwordStrength(passwordStrength,showStrength){
   var self = this;

   /*字符权重;
   数字1,字母2,其他字符为3
   当密码长度小于6时不符合标准
   长度>=6,强度小于10,强度弱
   长度>=6,长度>=10且<15,强度中
   长度>=6,强度>=15,强*/
   passwordStrength.onkeyup = function(){
    var _color = ["red","yellow","orange","green"],
      msgs = ["密码太短","弱","中","强"],
      _strength = 0,
      _v= trim(passwordStrength.value)
    _vL= _v.length,
      i=0;

    var charStrength = function(char){
     //计算单个字符强度
     if(char>=48 && char <=57){//数字
      return 1;
     }
     if(char>=97 && char<=122){//小写
      return 2;
     }else{
      return 3; //特殊字符
     }
    }

    if(_vL<6){//计算模式
     showStrength.innerText = msgs[0];
     setCss(showStrength,{
      "color":_color[0]
     })
    }else{
     for(;i<_vL;i++){
      //遍历字符
      _strength+=charStrength(_v.toLocaleLowerCase().charCodeAt(i));
     }
     if(_strength<10){
      //强度小于10
      showStrength.innerText = msgs[1];
      setCss(showStrength,{
       "color":_color[1]
      })
     }
     if(_strength>=10&&_strength<15){
      showStrength.innerText = msgs[2];
      setCss(showStrength,{
       "color":_color[2]
      })
     }
     if(_strength>=15){
      showStrength.innerText = msgs[3];
      setCss(showStrength,{
       "color":_color[3]
      })
     }
    }
   }
  }
  passwordStrength(
    document.getElementById("passwordStrength"),
    document.getElementById("showStrength"));

 };
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript小技巧 2.5 则
Sep 12 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
iframe父页面获取子页面参数的方法
Feb 21 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
JavaScript浮点数及运算精度调整详解
Oct 21 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
vue获取input输入值的问题解决办法
Oct 17 Javascript
javascript使用正则实现去掉字符串前面的所有0
Jul 23 Javascript
React styled-components设置组件属性的方法
Aug 07 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
JS async 函数的含义和用法实例总结
Apr 08 Javascript
js如何验证密码强度
Mar 18 #Javascript
js验证密码强度解析
Mar 18 #Javascript
js实现超级玛丽小游戏
Mar 18 #Javascript
vue 封装 Adminlte3组件的实现
Mar 18 #Javascript
JavaScript仿京东秒杀倒计时
Mar 17 #Javascript
JavaScript写个贪吃蛇小游戏(超详细)
Mar 17 #Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
Mar 17 #Javascript
You might like
Terran魔法科技
2020/03/14 星际争霸
windows xp下安装pear
2006/12/02 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP四大安全策略
2014/03/12 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php源码的安装方法和实例
2019/09/26 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
javascript学习网址备忘
2007/05/29 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
python实现接口并发测试脚本
2019/06/25 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python 实现简单的FTP程序
2019/12/27 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python创建文本文件的简单方法
2020/08/30 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
车间质检员岗位职责
2015/04/08 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
会议简讯范文
2015/07/20 职场文书
golang日志包logger的用法详解
2021/05/05 Golang