chris-ELM
1/20/2016 - 10:48 AM

password-strengh.js

 function scorePassword(pass) {
            var score = 0;
            if (!pass)
                return score;

            // award every unique letter until 5 repetitions
            var letters = new Object();
            for (var i = 0; i < pass.length; i++) {
                letters[pass[i]] = (letters[pass[i]] || 0) + 1;
                score += 5.0 / letters[pass[i]];
            }

            // bonus points for mixing it up
            var variations = {
                digits: /\d/.test(pass),
                lower: /[a-z]/.test(pass),
                upper: /[A-Z]/.test(pass),
                nonWords: /\W/.test(pass),
            }

            variationCount = 0;
            for (var check in variations) {
                variationCount += (variations[check] == true) ? 1 : 0;
            }
            score += (variationCount - 1) * 10;

            return parseInt(score);


        }

        function checkPassStrength(pass) {
            var score = scorePassword(pass);
             
            var outPut = "";
            if (score > 80) {
                outPut = "strong";
            }
            if (score > 60) {
                outPut = "good";
            }
            if (score >= 30) {
                outPut = "weak";
            }
            if (score < 30) {
                outPut = "very weak";
            }
           alert(outPut);
        }

        checkPassStrength("12345")