PHP :: Aufgabe #61 :: Lösung #1

2 Lösungen Lösungen öffentlich
#61

Passwortgenerator mit Parametern

Anfänger - PHP von pocki - 27.11.2014 um 18:11 Uhr
Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt.
Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können.
Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen.
Jede beliebige Kombination der Parameter soll möglich sein.
#1
vote_ok
von Jinnai (340 Punkte) - 22.11.2015 um 01:09 Uhr
Anmerkung: Den switch-Block könnte man genauso auch mit if-elseif Lösen.

Quellcode ausblenden PHP-Code
<?php
	function gen_pw($laenge, $art) {
		function generiere($laenge, $chars) {
			$passwd = '';
				for($i = 0; $i < $laenge; $i++) {
					$passwd .= $chars{mt_rand(0,strlen($chars)-1)};
				}
			echo $passwd;
		}
		
		switch($art) {
			case 'p101':
				$chars = "abcdefghijkmnpqrstuvwxyz";
				generiere($laenge, $chars);
				break;
			case 'p102':
				$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
				generiere($laenge, $chars);
				break;
			case 'p103':
				$chars = "0123456789";
				generiere($laenge, $chars);
				break;
			case 'p104':
				$chars = "@+*/[]}{%&\\";
				generiere($laenge, $chars);
				break;
			case 'p105':
				$chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
				generiere($laenge, $chars);
				break;
			case 'p106':
				$chars = "abcdefghijkmnpqrstuvwxyz0123456789";
				generiere($laenge, $chars);
				break;
			case 'p107':
				$chars = "abcdefghijkmnpqrstuvwxyz@+*/[]}{%&\\";
				generiere($laenge, $chars);
				break;
			case 'p108':
				$chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
				generiere($laenge, $chars);
				break;
			case 'p109':
				$chars = "abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@+*/[]}{%&\\";
				generiere($laenge, $chars);
				break;
			case 'p110':
				$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
				generiere($laenge, $chars);
				break;
			case 'p111':
				$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ@+*/[]}{%&\\";
				generiere($laenge, $chars);
				break;
			case 'p112':
				$chars = "0123456789@+*/[]}{%&\\";
				generiere($laenge, $chars);
				break;
			default:
				echo 'Es ist ein Fehler aufgetreten.';
		}
	}
	
	if(isset($_POST['submit'])) {
		if(isset($_POST['laenge']) && is_numeric($_POST['laenge'])) {
			if(isset($_POST['pwtype']) && $_POST['pwtype'] != 'p100') {
				gen_pw($_POST['laenge'], $_POST['pwtype']);
			}else {
				echo 'Bitte wähle die Art des zu generierenden Passworts aus.';
			}
		}else {
			echo 'Bitte trage eine gültige länge ein.';
		}
	}
?>


Quellcode ausblenden HTML-Code

<html>
	<form action="pwgenerator.php" method="POST">
		Länge des Passworts: <input type="text" name="laenge"><br />
		Art des Passworts: 	<select name="pwtype" size="1">
								<option value="p100"></option>
								<option value="p101">Kleinbuchstaben</option>
								<option value="p102">Großbuchstaben</option>
								<option value="p103">Zahlen</option>
								<option value="p104">Sonderzeichen</option>
								<option value="p105">Kleinbuchstaben & Großbuchstaben</option>
								<option value="p106">Kleinbuchstaben & Zahlen</option>
								<option value="p107">Kleinbuchstaben & Sonderzeichen</option>
								<option value="p108">Kleinbuchstaben & Großbuchstaben & Zahlen</option>
								<option value="p109">Kleinbuchstaben & Großbuchstaben & Sonderzeichen</option>
								<option value="p110">Großbuchstaben & Zahlen</option>
								<option value="p111">Großbuchstaben & Sonderzeichen</option>
								<option value="p112">Zaehlen & Sonderzeichen</option>
							</select><br />
		<input type="submit" name="submit" value="Generieren">
	</form>
</html>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2116645

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.