Un générateur de mot de passe et un verificateur de sécurité d’un mot de passe

Publié le 04 décembre 2008 par Dator

Petit trouvaille du jour (ou de la soirée), je viens de trouver un script pour jQuery qui permet de générer des mots de passes sécurisé. De plus ce plugin permet de vérifier la sécurité d’un mot de passe donné.

Voici le code du plugin :

$.fn.passwordStrength = function( options ){
	return this.each(function(){
		var that = this;that.opts = {};
		that.opts = $.extend({}, $.fn.passwordStrength.defaults, options);

		that.div = $(that.opts.targetDiv);
		that.defaultClass = that.div.attr('class');

		that.percents = (that.opts.classes.length) ? 100 / that.opts.classes.length : 100;

		 v = $(this)
		.keyup(function(){
			if( typeof el == "undefined" )
				this.el = $(this);
			var s = getPasswordStrength (this.value);
			var p = this.percents;
			var t = Math.floor( s / p );

			if( 100 < = s )
				t = this.opts.classes.length - 1;

			this.div
				.removeAttr('class')
				.addClass( this.defaultClass )
				.addClass( this.opts.classes[ t ] );

		})
		.after('Generate Password')
		.next()
		.click(function(){
			$(this).prev().val( randomPassword() ).trigger('keyup');
			return false;
		});
	});

	function getPasswordStrength(H){
		var D=(H.length);
		if(D>5){
			D=5
		}
		var F=H.replace(/[0-9]/g,"");
		var G=(H.length-F.length);
		if(G>3){G=3}
		var A=H.replace(/\W/g,"");
		var C=(H.length-A.length);
		if(C>3){C=3}
		var B=H.replace(/[A-Z]/g,"");
		var I=(H.length-B.length);
		if(I>3){I=3}
		var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
		if(E<0){E=0}
		if(E>100){E=100}
		return E
	}

	function randomPassword() {
		var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$_+";
		var size = 10;
		var i = 1;
		var ret = ""
		while ( i < = size ) {
			$max = chars.length-1;
			$num = Math.floor(Math.random()*$max);
			$temp = chars.substr($num, 1);
			ret += $temp;
			i++;
		}
		return ret;
	}

};

$.fn.passwordStrength.defaults = {
	classes : Array('is10','is20','is30','is40',
        'is50','is60','is70','is80','is90','is100'),
	targetDiv : '#passwordStrengthDiv',
	cache : {}
}

Et voici comment utiliser le plugin :

$(document).ready(function(){
	$('input[name="password"]').passwordStrength();
	$('input[name="password2"]').passwordStrength({targetDiv: '#passwordStrengthDiv2',
        classes : Array('is10','is20','is30','is40')});
});

Vous pourrez trouver un exemple d’utilisation à cette adresse.
Il ne faut pas oublier d’inclure la librairie jQuery avant d’utiliser ces morceaux de code.

Grâce à cela, plus besoin de chercher des scripts un peu vieux pour vérifier la sécurité des mots de passes dans vos applications, un plugin pour jQuery existe !


Article original écrit par Dator et publié sur Dator.fr, le 2008. | Lien direct vers cet article | © Dator.fr - 2008
Mot clés: Javascript, jQuery, Plugin