passwordmeter
Version:
Password security checker function based on http://www.passwordmeter.com/
2 lines • 2.52 kB
JavaScript
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.passwordMeter=r():e.passwordMeter=r()}(this,function(){return function(e){function r(n){if(t[n])return t[n].exports;var a=t[n]={exports:{},id:n,loaded:!1};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r){"use strict";function t(e){for(var r="",t=0;t<e.length;t++)r=e.charAt(t)+r;return r}e.exports={checkPass:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;if(!e)return-1;for(var n=0,a=0,s=0,o=0,p=0,i=0,f=0,c=0,d=0,u=0,h=0,I=0,l=0,v=0,g=0,x=0,m=0,b=0,w=2,L=2,C=2,y=2,O=3,A=3,M=3,j=4,z=4,k=6,Z="",q="",N="",P="",S="abcdefghijklmnopqrstuvwxyz",U="01234567890",$=")!@#$%^&*()",_=parseInt(e.length*j),B=e.length,D=e.replace(/\s+/g,"").split(/\s*/),E=D.length,F=0;F<E;F++){D[F].match(/[A-Z]/g)?(""!==Z&&Z+1==F&&(d++,l++),Z=F,n++):D[F].match(/[a-z]/g)?(""!==q&&q+1==F&&(u++,l++),q=F,a++):D[F].match(/[0-9]/g)?(F>0&&F<E-1&&p++,""!==N&&N+1==F&&(h++,l++),N=F,s++):D[F].match(/[^a-zA-Z0-9_]/g)&&(F>0&&F<E-1&&p++,""!==P&&P+1==F&&(I++,l++),P=F,o++);for(var G=!1,H=0;H<E;H++)D[F]==D[H]&&F!=H&&(G=!0,c+=Math.abs(E/(H-F)));G&&(f++,i=E-f,c=i?Math.ceil(c/i):Math.ceil(c))}for(var J=0;J<23;J++){var K=S.substring(J,parseInt(J+3)),Q=t(K);e.toLowerCase().indexOf(K)==-1&&e.toLowerCase().indexOf(Q)==-1||(v++,m++)}for(var R=0;R<8;R++){var T=U.substring(R,parseInt(R+3)),V=t(T);e.toLowerCase().indexOf(T)==-1&&e.toLowerCase().indexOf(V)==-1||(g++,m++)}for(var W=0;W<8;W++){var X=$.substring(W,parseInt(W+3)),Y=t(X);e.toLowerCase().indexOf(X)==-1&&e.toLowerCase().indexOf(Y)==-1||(x++,m++)}n>0&&n<B&&(_=parseInt(_+2*(B-n))),a>0&&a<B&&(_=parseInt(_+2*(B-a))),s>0&&s<B&&(_=parseInt(_+s*z)),o>0&&(_=parseInt(_+o*k)),p>0&&(_=parseInt(_+p*w)),(a>0||n>0)&&0===o&&0===s&&(_=parseInt(_-B)),0===a&&0===n&&0===o&&s>0&&(_=parseInt(_-B)),f>0&&(_=parseInt(_-c)),d>0&&(_=parseInt(_-d*L)),u>0&&(_=parseInt(_-u*C)),h>0&&(_=parseInt(_-h*y)),v>0&&(_=parseInt(_-v*O)),g>0&&(_=parseInt(_-g*A)),x>0&&(_=parseInt(_-x*M));var ee=void 0,re=void 0,te=void 0;ee=[B,n,a,s,o],re=["nLength","nAlphaUC","nAlphaLC","nNumber","nSymbol"],te=ee.length;for(var ne=0;ne<te;ne++){var ae;ae="nLength"==re[ne]?parseInt(r-1):0,ee[ne]==parseInt(ae+1)?b++:ee[ne]>parseInt(ae+1)&&b++}var se,oe=b;return se=e.length>=r?3:4,oe>se&&(_=parseInt(_+2*oe)),_>100?_=100:_<0&&(_=0),_}}}])});
//# sourceMappingURL=index.umd.min.js.map