Einführung
In diesem Projekt lernst du, wie du ein Skript zum Generieren von zufälligen Passwörtern erstellst, das bestimmte Sicherheitsanforderungen erfüllt. Das Skript wird ein 12-Zeichen-Passwort generieren, das mindestens eine Ziffer, einen Großbuchstaben, einen Kleinbuchstaben und ein Sonderzeichen aus der Menge ><+-{}:.&; enthält. Dieses Projekt bietet dir praktische Erfahrungen in der Skriptprogrammierung und der Arbeit mit zufälligen Daten.
👀 Vorschau
$ cd /home/labex/project
$ sh genpass.sh
## Beispiel
2Dsxw9+xS:27
🎯 Aufgaben
In diesem Projekt wirst du:
- Die Projektumgebung einrichten und die erforderliche Skriptdatei erstellen.
- Die Logik implementieren, um ein zufälliges Passwort zu generieren, das die angegebenen Komplexitätsanforderungen erfüllt.
- Das Passwort-Generatorskript testen, um sicherzustellen, dass es korrekt funktioniert.
🏆 Errungenschaften
Nach Abschluss dieses Projekts kannst du:
- Den Prozess des Erstellens eines Skripts zum Generieren von zufälligen Passwörtern verstehen.
- Ein Passwort-Generierungsalgorithmus implementieren, der bestimmte Zeichentyp-Anforderungen erfüllt.
- Die generierten Passwörter testen und validieren, um zu bestätigen, dass sie die gewünschten Kriterien erfüllen.
Einrichten der Projektumgebung
In diesem Schritt bereitest du deine Arbeitsumgebung vor und erstellst die erforderliche Datei für das Passwort-Generatorskript.
Öffne dein Terminal und navigiere mit dem Befehl
cdin das Verzeichnis/home/labex/project:cd /home/labex/projectErstelle mit dem Befehl
toucheine neue Datei namensgenpass.sh. Dies wird die Datei sein, in der du dein Passwort-Generatorskript schreibst:touch genpass.shÖffne die Datei
genpass.shin einem Texteditor. Du kannstnano,vimoder einen anderen bevorzugten Texteditor verwenden. Füge am Anfang der Datei die folgende Shebang-Zeile hinzu:#!/bin/zsh ## Zufälliges Passwort-Generator ## Dieses Skript generiert ein zufälliges Passwort, das die angegebenen Anforderungen erfüllt.Diese Zeile teilt dem System mit, dass das Skript mit der zsh-Shell ausgeführt werden soll. Die Kommentare nach der Shebang-Zeile geben eine kurze Beschreibung des Skripts.
Implementieren der Passwort-Generierungslogik
In diesem Schritt fügst du der genpass.sh-Datei die Kernlogik hinzu, um zufällige Passwörter zu generieren, die den Komplexitätsanforderungen entsprechen.
Füge in der
genpass.sh-Datei die folgende Funktion hinzu, um das Passwort zu generieren:## Funktion zur Generierung eines zufälligen Passworts generate_password() { local length=12 local password='' ## Sonderzeichen local special_chars='><+-{}:.&;' local special_char="${special_chars:$RANDOM%${#special_chars}:1}" password+="$special_char" ## Ziffern local digits='0123456789' local digit="${digits:$RANDOM%${#digits}:1}" password+="$digit" ## Großbuchstaben local upper_case='ABCDEFGHIJKLMNOPQRSTUVWXYZ' local upper="${upper_case:$RANDOM%${#upper_case}:1}" password+="$upper" ## Kleinbuchstaben local lower_case='abcdefghijklmnopqrstuvwxyz' local lower="${lower_case:$RANDOM%${#lower_case}:1}" password+="$lower" ## Restliche Zeichen local remaining_length=$((length - 4)) local characters='><+-{}:.&;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' local num_characters=${#characters} for ((i = 0; i < remaining_length; i++)); do local random_char="${characters:$RANDOM%$num_characters:1}" password+="$random_char" done ## Mische die Reihenfolge der Passwortzeichen password=$(echo "$password" | fold -w1 | shuf | tr -d '\n') echo "$password" }Diese Funktion funktioniert wie folgt:
- Initialisiert das Passwort mit einem Sonderzeichen, einer Ziffer, einem Großbuchstaben und einem Kleinbuchstaben, um die grundlegenden Kriterien zu erfüllen.
- Berechnet die Anzahl der verbleibenden Zeichen, um die gewünschte Länge von 12 zu erreichen.
- Wählt die verbleibenden Zeichen zufällig aus einem Pool von Ziffern, Buchstaben (Groß- und Kleinbuchstaben) und Sonderzeichen aus.
- Mische das Passwort, um sicherzustellen, dass die speziellen Zeichen nicht immer am Anfang stehen.
Füge am Ende der
genpass.sh-Datei den folgenden Code hinzu. Dieser Teil des Skripts ruft diegenerate_password-Funktion auf und gibt das generierte Passwort in der Konsole aus:## Generiere Passwort und gib es aus generate_password
Testen des Passwort-Generators
In diesem Schritt testest du das genpass.sh-Skript, um sicherzustellen, dass es Passwörter generiert, die alle Anforderungen erfüllen.
Speichere die
genpass.sh-Datei in deinem Texteditor.Gib im Terminal mit dem Befehl
chmoddem Skript die Ausführungsberechtigung:chmod +x genpass.shDieser Befehl fügt der Datei die Ausführungsrechte hinzu, sodass sie als Programm ausgeführt werden kann.
Führe das Skript mit dem folgenden Befehl aus:
sh genpass.shDas Skript sollte in der Konsole ein zufälliges 12-Zeichen-Passwort ausgeben. Die Ausgabe sollte mindestens ein Sonderzeichen, eine Ziffer, einen Großbuchstaben und einen Kleinbuchstaben enthalten.
## Beispiel 2Dsxw9+xS:27Führe das Skript noch einige Male aus. Bei jedem Durchlauf sollte ein anderes Passwort generiert werden. Dies bestätigt, dass die Zufälligkeit des Passwort-Generators korrekt funktioniert.
Herzlichen Glückwunsch! Du hast erfolgreich einen zufälligen Passwort-Generator implementiert und getestet, der die angegebenen Komplexitätsanforderungen erfüllt.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen und ein Skript zum Generieren von zufälligen Passwörtern erstellt. Du hast nun eine solide Grundlage für zukünftige Skriptprojekte. Du kannst weiterhin auf LabEx an weiteren Labs üben, um deine Fähigkeiten weiter zu verbessern.



