Introduction
Dans ce projet, vous allez apprendre à créer un script générateur de mots de passe aléatoires qui répond à des exigences de sécurité spécifiques. Le script générera un mot de passe de 12 caractères comprenant au moins un chiffre, une lettre majuscule, une lettre minuscule et un caractère spécial parmi l'ensemble ><+-{}:.&;. Ce projet vous offrira une expérience pratique en matière de scripting et de manipulation de données aléatoires.
👀 Aperçu
$ cd /home/labex/project
$ sh genpass.sh
## Exemple
2Dsxw9+xS:27
🎯 Tâches
Dans ce projet, vous allez :
- Configurer l'environnement du projet et créer le fichier de script nécessaire.
- Implémenter la logique pour générer un mot de passe aléatoire qui répond aux exigences de complexité spécifiées.
- Tester le script générateur de mots de passe pour vous assurer qu'il fonctionne correctement.
🏆 Réalisations
Une fois ce projet terminé, vous serez en mesure de :
- Comprendre le processus de création d'un script générateur de mots de passe aléatoires.
- Implémenter un algorithme de génération de mots de passe qui répond à des exigences spécifiques en matière de types de caractères.
- Tester et valider les mots de passe générés pour confirmer qu'ils répondent aux critères souhaités.
Configurer l'environnement du projet
Dans cette étape, vous allez préparer votre environnement de travail et créer le fichier nécessaire pour le script générateur de mots de passe.
Ouvrez votre terminal et accédez au répertoire
/home/labex/projecten utilisant la commandecd:cd /home/labex/projectCréez un nouveau fichier nommé
genpass.shen utilisant la commandetouch. C'est dans ce fichier que vous écrirez votre script générateur de mots de passe :touch genpass.shOuvrez le fichier
genpass.shdans un éditeur de texte. Vous pouvez utilisernano,vimou tout éditeur de texte de votre choix. Ajoutez la ligne de shebang suivante au tout début du fichier :#!/bin/zsh ## Générateur de mots de passe aléatoires ## Ce script génère un mot de passe aléatoire qui répond aux exigences spécifiées.Cette ligne indique au système d'utiliser le shell zsh pour exécuter le script. Les commentaires suivants la ligne de shebang fournissent une brève description du script.
Implémenter la logique de génération de mot de passe
Dans cette étape, vous allez ajouter la logique principale au script genpass.sh pour générer des mots de passe aléatoires qui répondent aux exigences de complexité.
À l'intérieur du fichier
genpass.sh, ajoutez la fonction suivante pour générer le mot de passe :## Fonction pour générer un mot de passe aléatoire generate_password() { local length=12 local password='' ## Caractères spéciaux local special_chars='><+-{}:.&;' local special_char="${special_chars:$RANDOM%${#special_chars}:1}" password+="$special_char" ## Chiffres local digits='0123456789' local digit="${digits:$RANDOM%${#digits}:1}" password+="$digit" ## Lettres majuscules local upper_case='ABCDEFGHIJKLMNOPQRSTUVWXYZ' local upper="${upper_case:$RANDOM%${#upper_case}:1}" password+="$upper" ## Lettres minuscules local lower_case='abcdefghijklmnopqrstuvwxyz' local lower="${lower_case:$RANDOM%${#lower_case}:1}" password+="$lower" ## Caractères restants 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 ## Mélanger l'ordre des caractères du mot de passe password=$(echo "$password" | fold -w1 | shuf | tr -d '\n') echo "$password" }Cette fonction fonctionne de la manière suivante :
- Elle initialise le mot de passe avec un caractère spécial, un chiffre, une lettre majuscule et une lettre minuscule pour répondre aux critères de base.
- Elle calcule le nombre de caractères restants pour atteindre la longueur souhaitée de 12 caractères.
- Elle sélectionne aléatoirement les caractères restants parmi un ensemble de chiffres, de lettres (majuscules et minuscules) et de caractères spéciaux.
- Elle mélange le mot de passe pour s'assurer que les caractères spécifiques ne sont pas toujours au début.
Ajoutez le code suivant à la fin du fichier
genpass.sh. Cette partie du script appelle la fonctiongenerate_passwordet affiche le mot de passe généré dans la console :## Générer le mot de passe et l'afficher generate_password
Tester le générateur de mots de passe
Dans cette étape, vous allez tester le script genpass.sh pour vous assurer qu'il génère des mots de passe qui répondent à toutes les exigences.
Enregistrez le fichier
genpass.shdans votre éditeur de texte.Dans le terminal, rendez le script exécutable en utilisant la commande
chmod:chmod +x genpass.shCette commande ajoute les autorisations d'exécution au fichier, permettant de l'exécuter comme un programme.
Exécutez le script en utilisant la commande suivante :
sh genpass.shLe script devrait afficher un mot de passe aléatoire de 12 caractères dans la console. La sortie devrait contenir au moins un caractère spécial, un chiffre, une lettre majuscule et une lettre minuscule.
## Exemple 2Dsxw9+xS:27Exécutez le script plusieurs fois de plus. Chaque fois, un mot de passe différent devrait être généré. Cela vérifie que la génération aléatoire du mot de passe fonctionne correctement.
Félicitations! Vous avez réussi à implémenter et tester un générateur de mots de passe aléatoires qui répond aux exigences de complexité spécifiées.
Résumé
Félicitations! Vous avez terminé ce projet et créé un script générateur de mots de passe aléatoires. Vous disposez désormais d'une base solide pour vos futurs projets de scripting. Vous pouvez continuer à vous entraîner avec plus de laboratoires sur LabEx pour améliorer encore vos compétences.



