aboutsummaryrefslogtreecommitdiff
path: root/Html/js/passwd.js
diff options
context:
space:
mode:
authorcitizenz7 <citizenz7@protonmail.com>2017-04-20 18:50:55 +0200
committercitizenz7 <citizenz7@protonmail.com>2017-04-20 18:50:55 +0200
commit5fd9fa480f302902328b81f912dd67ce378284f8 (patch)
tree66234843ae2857fda12442e4f7577c527d48977c /Html/js/passwd.js
parentebe731862c7c741171138b1083906f391fc35aff (diff)
downloadfreetorrent-5fd9fa480f302902328b81f912dd67ce378284f8.tar.xz
freetorrent-5fd9fa480f302902328b81f912dd67ce378284f8.zip
V.1.4.6
Diffstat (limited to 'Html/js/passwd.js')
-rw-r--r--Html/js/passwd.js81
1 files changed, 81 insertions, 0 deletions
diff --git a/Html/js/passwd.js b/Html/js/passwd.js
new file mode 100644
index 0000000..8d79fd4
--- /dev/null
+++ b/Html/js/passwd.js
@@ -0,0 +1,81 @@
+// Password strength meter
+// This jQuery plugin is written by firas kassem [2007.04.05]
+// Firas Kassem phiras.wordpress.com || phiras at gmail {dot} com
+// for more information : http://phiras.wordpress.com/2007/04/08/password-strength-meter-a-jquery-plugin/
+
+var shortPass = '<span style="color: red;">Mot de passe très faible</span>'
+var badPass = '<span style="color: orange;">Mot de passe faible</span>'
+var goodPass = '<span style="color: green;">Mot de passe bon</span>'
+var strongPass = '<span style="color: blue;">Mot de passe très bon</span>'
+
+
+
+function passwordStrength(password,username)
+{
+ score = 0
+
+ //password < 4
+ if (password.length < 4 ) { return shortPass }
+
+ //password == username
+ if (password.toLowerCase()==username.toLowerCase()) return badPass
+
+ //password length
+ score += password.length * 4
+ score += ( checkRepetition(1,password).length - password.length ) * 1
+ score += ( checkRepetition(2,password).length - password.length ) * 1
+ score += ( checkRepetition(3,password).length - password.length ) * 1
+ score += ( checkRepetition(4,password).length - password.length ) * 1
+
+ //password has 3 numbers
+ if (password.match(/(.*[0-9].*[0-9].*[0-9])/)) score += 5
+
+ //password has 2 sybols
+ if (password.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) score += 5
+
+ //password has Upper and Lower chars
+ if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) score += 10
+
+ //password has number and chars
+ if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) score += 15
+ //
+ //password has number and symbol
+ if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([0-9])/)) score += 15
+
+ //password has char and symbol
+ if (password.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && password.match(/([a-zA-Z])/)) score += 15
+
+ //password is just a nubers or chars
+ if (password.match(/^\w+$/) || password.match(/^\d+$/) ) score -= 10
+
+ //verifing 0 < score < 100
+ if ( score < 0 ) score = 0
+ if ( score > 100 ) score = 100
+
+ if (score < 34 ) return badPass
+ if (score < 68 ) return goodPass
+ return strongPass
+}
+
+
+// checkRepetition(1,'aaaaaaabcbc') = 'abcbc'
+// checkRepetition(2,'aaaaaaabcbc') = 'aabc'
+// checkRepetition(2,'aaaaaaabcdbcd') = 'aabcd'
+
+function checkRepetition(pLen,str) {
+ res = ""
+ for ( i=0; i<str.length ; i++ ) {
+ repeated=true
+ for (j=0;j < pLen && (j+i+pLen) < str.length;j++)
+ repeated=repeated && (str.charAt(j+i)==str.charAt(j+i+pLen))
+ if (j<pLen) repeated=false
+ if (repeated) {
+ i+=pLen-1
+ repeated=false
+ }
+ else {
+ res+=str.charAt(i)
+ }
+ }
+ return res
+}