JS-Plugin Pwstrength
HTML
JavaScript
CSS
Demo
<!DOCTYPE html> <html> <head> 	<title>Passwortsicherheit</title> 	<link rel="stylesheet" type="text/css" href="pwstrength.css" media="screen"> 	<script src="pwstrength.js"></script> 	<script type="text/javascript" language="JavaScript"> 		window.onload = function() { 			var pws = new Pwstrength({idpwelement:'pwort1',pwminlength:12,animtime:100}); 			pwort1.focus(); 		} 	</script> </head> <body> 	<div class="formdiv"> 		<h3><br>Prüfung der Passwortsicherheit</h3> 		<form action="login.php" method="post"> 			<p>Passwort:</p> 			<div id="password"> 				<input id="pwort1" class="pw" type="password" name="pwort1" value="" maxlength="20"> 				<div id="strenghtbar"><div id="bar" class="bar0"></div></div> 			</div> 		</form> 	</div> </body> </html>
/* RaWi-JS-Plugin:	Pwstrength 	*	JS-File:					pwstrength.js 	*	CSS-File:				pwstrength.min.css */ (function() { 	// Constructor 	this.Pwstrength = function(element) { 		// Globale Plugin-Element-Referenz 		this.pwstrength = null; 		// Bar-Element 		this.strenghtbar = null; 		// Option defaults 		var defaults = { 			idpwelement: 'pwort1', 			idstrenghtbar: 'bar', 			barclassname: 'bar', 			pwminlength: 12, 			animtime: 300 		} 		// Option defaults einlesen 		if (arguments[0] && typeof arguments[0] === "object") { 			this.options = extendDefaults(defaults, arguments[0]); 		} 		// Vars 		this.pstrength = 0; 		this.aktstrength = this.pstrength; 		this.passwort = ""; 		this.breite = 0; 		// Plugin-Elemente 		this.pwstrength = document.getElementById(this.options.idpwelement); 		this.strenghtbar = document.getElementById(this.options.idstrenghtbar); 		// EventListner 		this.pwstrength.addEventListener('keyup', this.handleKeyUp.bind(this)); 	} 	// --------------- 	// Plugin-Methoden 	// --------------- 	// Breite von strenghtbar animieren 	Pwstrength.prototype.animate = function (barelement,breite) { 		var schritte = 100; 		var step = 20 / schritte; 		var aktstep = 0; 		var steptime = this.options.animtime / schritte; 		var aktbreite = 20 * this.aktstrength; 		var baranimation = setInterval(function(){ animate() }, steptime); 		function animate() { 			if (aktstep > schritte) { 				clearInterval(baranimation); 			} else { 				aktstep += 1; 				if (breite > aktbreite) { 					elembreite = aktbreite + parseFloat( aktstep * step ) + '%'; 				} else { 					elembreite = (aktbreite - parseFloat( aktstep * step )) + '%'; 				} 				barelement.style.width = elembreite; 			} 		} 	} 	// KeyUp-Handler 	Pwstrength.prototype.handleKeyUp = function (event) { 		// Passwort-Strength auf 0 setzen 		this.pstrength = 0; 		// Passwort aus dem Eingabefeld holen 		this.passwort = this.pwstrength.value; 		// Prüfung Großbuchstaben 		if (this.passwort.match(/[A-ZÄÖÜ]{1,}/)) this.pstrength += 1; 		// Prüfung Kleinbuchstaben 		if (this.passwort.match(/[a-zäöüß]{1,}/)) this.pstrength += 1; 		// Prüfung Zahlen 		if (this.passwort.match(/\d{1,}/)) this.pstrength += 1; 		// Prüfung Sonderzeichen 		if (this.passwort.match(/[!@#$%^&*?_~].*?[!@#$%^&*?_~]/) 			 || this.passwort.match(/[!"@#\()+-.,;:§$%^&*?_~]/)) this.pstrength += 1; 		// Prüfung Länge 		if (this.passwort.length >= this.options.pwminlength) this.pstrength += 1; 		// Bar-Class bestimmen 		this.strenghtbar.className = this.options.barclassname + this.pstrength; 		// Bar animieren wenn aktstrength <> pstrength 		if (this.aktstrength != this.pstrength) { 			// Berechnung der Breite in Prozent 			this.breite = 20 * this.pstrength; 			// Bar animieren 			this.animate(this.strenghtbar,this.breite); 			// aktstrength aktualisieren 			this.aktstrength = this.pstrength; 		} 	} 	// ------------------------------ 	// Option defaults implementieren 	// ------------------------------ 	function extendDefaults(source, properties) { 		var property; 		for (property in properties) { 			if (properties.hasOwnProperty(property)) { 				source[property] = properties[property]; 			} 		} 		return source; 	} }());
/* Styles Plugin Pwstrength */ * { box-sizing:border-box; } .formdiv { width:300px; margin:0 auto; } .pw { 	height:27px; 	width:300px; 	font-size:15px; 	text-align:left; 	color:#000; 	background:#eee; 	outline:none; 	border:1px solid #ccc; 	padding:4px 4px 4px 4px; 	margin:5px 0px 10px 0px; } #strenghtbar { 	height:3px; 	width:100%; 	position:relative; 	background:#ccc; 	top:-10px; 	display:block; } .bar0 { height:3px; width:100%; background:#ccc; } .bar1 { height:3px; width:0%; background:#cc0000; position:absolute; left:0px; } .bar2 { height:3px; width:0%; background:#fd8f00; position:absolute; left:0px; } .bar3 { height:3px; width:0%; background:#fdd600; position:absolute; left:0px; } .bar4 { height:3px; width:0%; background:#fdee00; position:absolute; left:0px; } .bar5 { height:3px; width:0%; background:#00aa00; position:absolute; left:0px; }
JS-Plugin zur Prüfung der Passwortsicherheit
Das Passwort ist nur sicher, wenn es Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält und eine vorgegebene Mindestlänge besitzt.
Passwort:
Dieses Plugin visualisiert die Sicherheit eines Passworts.
Sorry, aber die Darstellung der Codes dieses Beispiels ist auf kleinen Displays zu unübersichtlich.Sie können sich jedoch die Codes downloaden und das Plugin auf ihrem PC/Laptop/Tablet ausprobieren.