diff options
| author | Adam Soltys <[email protected]> | 2014-08-15 11:58:54 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-08-15 11:58:54 -0700 |
| commit | 41387a388a1786354ab4b1f8d6c3a264958bcbeb (patch) | |
| tree | a1911ed6e7aa8a846aeb1b3035b42b87e6f13049 /public/js/score_password.js | |
| parent | 2f7453a30daaa68a024ec70588ea50aa53368dcc (diff) | |
| download | coinos-server-41387a388a1786354ab4b1f8d6c3a264958bcbeb.tar.gz coinos-server-41387a388a1786354ab4b1f8d6c3a264958bcbeb.zip | |
Validate registration form
Diffstat (limited to 'public/js/score_password.js')
| -rw-r--r-- | public/js/score_password.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/public/js/score_password.js b/public/js/score_password.js new file mode 100644 index 00000000..a28001fa --- /dev/null +++ b/public/js/score_password.js @@ -0,0 +1,28 @@ +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); +} |
