基于密码强度检测算法分析及实现

zxcvbn是一个受密码破解启发而来的密码强度估算器。它通过模式匹配和保守估计,大概可以识别大约30K左右的常规密码。主要基于美国人口普查数据,维基,美国电影,电视流行词以及其它一些常用模式,像日期,重复字符,序列字符,键盘模式和L33T会话等。

zxcvbn支持多种开发语言。因其模式的复杂及字典的存在,当前版本的zxcvbn.js大约有800多K。

要了解项目的详情及算法见zxcvbn官网:

github zxcvbn

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>基于规则评分的密码强度检测算法分析及实现</title>
</head>
<style>
.container > * {
  width: 200px;
}
.bar {
  margin: 5px 0 3px;
  border: 2px solid #ccc;
  overflow: hidden;
}
.bar > span {
  display: block;
  height: 20px;
  width: 1%;
  background-color: green;
}
</style>
<body>
<div class="container">
  <input id ="pwd" type="text" maxlength="32" />
  <div class="bar">
    <span id="rate"></span>
  </div>
  <span id="score">0</span>
</div>


<script src="https://cdn.bootcss.com/zxcvbn/4.4.2/zxcvbn.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', function () {
    var pwd = document.getElementById("pwd");
    pwd.addEventListener("keyup",function () {
      var result = zxcvbn(pwd.value);
      document.getElementById("score").innerHTML = "评分:"+result['score']*100.0 / 4;
      document.getElementById("rate").style.width = (result['score']*100.0 / 4)+"%";
    });
  });
</script>
</body>
</html>

sdsdsd

posted @ 2018-07-07 14:59  心无引擎,眼无流派  阅读(521)  评论(0编辑  收藏  举报