public/site_assets/bootstrap/js/pwcheck.js
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);
});
});