基于密码强度检测算法分析及实现
zxcvbn是一个受密码破解启发而来的密码强度估算器。它通过模式匹配和保守估计,大概可以识别大约30K左右的常规密码。主要基于美国人口普查数据,维基,美国电影,电视流行词以及其它一些常用模式,像日期,重复字符,序列字符,键盘模式和L33T会话等。
zxcvbn支持多种开发语言。因其模式的复杂及字典的存在,当前版本的zxcvbn.js大约有800多K。
要了解项目的详情及算法见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