65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
function calcScore(pass) {
|
|
var keywords = [ "mine", "mining", "crypto", "pool", "coin" ];
|
|
return zxcvbn(pass, keywords).score;
|
|
}
|
|
|
|
function getPassStrength(score) {
|
|
if (score === 4)
|
|
return "Excellent";
|
|
if (score === 3)
|
|
return "Strong";
|
|
if (score === 2)
|
|
return "Good";
|
|
if (score === 1)
|
|
return "Weak";
|
|
if (score === 0)
|
|
return "Extremely weak";
|
|
return "";
|
|
}
|
|
|
|
function getStrengthColor(score) {
|
|
if (score === 4)
|
|
return "#390";
|
|
if (score === 3)
|
|
return "#3C0";
|
|
if (score === 2)
|
|
return "#399";
|
|
if (score === 1)
|
|
return "#E00";
|
|
if (score === 0)
|
|
return "#C00";
|
|
return "#999";
|
|
}
|
|
|
|
function checkIfPasswordsMatch(password1, password2) {
|
|
var pwMatch = $("#pw_match");
|
|
if (password1 === password2 && password1 !== "" && password2 !== "") {
|
|
$(pwMatch).text("Passwords match!");
|
|
$(pwMatch).css("color", "#390");
|
|
} else if (password1 === "" || password2 === "") {
|
|
$(pwMatch).text("");
|
|
} else {
|
|
$(pwMatch).text("Passwords don't match!");
|
|
$(pwMatch).css("color", "#399");
|
|
}
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
var pwField1 = $("#pw_field");
|
|
var pwField2 = $("#pw_field2");
|
|
|
|
if(pwField1.length > 0 && pwField2.length > 0){
|
|
(function(){var a;a=function(){var a,b;b=document.createElement("script");b.src=zxcvbnPath;b.type="text/javascript";b.async=!0;a=document.getElementsByTagName("script")[0];return a.parentNode.insertBefore(b,a)};null!=window.attachEvent?window.attachEvent("onload",a):window.addEventListener("load",a,!1)}).call(this);
|
|
}
|
|
|
|
$(pwField1).add(pwField2).on("keypress keyup keydown", function() {
|
|
var password1 = $(pwField1).val();
|
|
var password2 = $(pwField2).val();
|
|
|
|
var pwStrength = $("#pw_strength");
|
|
var score = calcScore(password1);
|
|
pwStrength.text(getPassStrength(score));
|
|
pwStrength.css("color", getStrengthColor(score));
|
|
checkIfPasswordsMatch(password1, password2);
|
|
});
|
|
}); |