Générateur simple d'un mot de passe aléatoire

Présentation
Le programme génère un mot de passe aléatoire d'une longueur de 9 caractères alphanumériques. Le mot de passe généré se compose de lettres minuscules, de lettres majuscules, et de chiffres en base décimale. Compilable avec Code::Blocks, sous Windows.
Nos ressources disponibles

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

int main()
{
srand(time(NULL)); // On initialise le randomizeur
char liste[62] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // On définit les caractères qui seront piochés au hasard dans cette chaîne de 62 caractères

for (unsigned int i = 1; i <= 9; i++) // Boucle pour générer 9 caractères alphanumériques
{
unsigned code = rand() % 62; // On choisit aléatoirement un nombre compris entre 0 et 61, grâce au modulo
char ascii = liste[code]; // Le nombre qu'on a choisi précédemment définit le rang du caractère dans la chaîne (entre 0 et 61)
printf("%c", ascii); // On affiche le caractère généré aléatoirement
}

printf("\n"); // Afin que la chaîne de 9 caractères apparaisse concaténée à la sortie

return 0;
}

Exemples de mots de passe générés aléatoirement :

gMWgS3xtc
j84neoKgv
mZGY5JW3j
qlOAr48lD
tIqbOSl8q
wyziFdxVK


Le code source peut évidemment être amélioré, en ajoutant d'autres caractères ASCII dans la chaîne liste[n], où n devient supérieur à 62.
On peut même définir un mot de passe au-delà d'une longueur de 9 caractères.
Téléchargement
Compatibilité
Windows
0  0 
Téléchargé 1 fois Voir les 6 commentaires
Détails
Catégories : Mathématiques
Avatar de Philippe JCG
Membre régulier
Voir tous les téléchargements de l'auteur
Licence : Freeware
Date de mise en ligne : 28 juillet 2018




Avatar de Onunthen Onunthen - Futur Membre du Club https://www.developpez.com
le 01/08/2018 à 14:19
Salut , je voudrais bien savoir pourquoi à la compilation de ton programme j'ai une erreur du genre

||=== Build file: "no target" in "no project" (compiler: unknown) ===|
H:\Partie 1\mot_de_passe.c||In function 'main'
H:\Partie 1\mot_de_passe.c|11|error: 'for' loop initial declarations are only allowed in C99 or C11 mode|
H:\Partie 1\mot_de_passe.c|11|note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
or je programme avec code block 16.01.
Avatar de edgarjacobs edgarjacobs - Membre éprouvé https://www.developpez.com
le 01/08/2018 à 15:42
Hello,

Car tu compiles en c89, qui n'autorise les déclarations qu'en début de bloc (après une { ). Mais je ne sais pas, avec CB, comment ajouter l'option -c11 pour la compilation.
Avatar de Kannagi Kannagi - Expert éminent https://www.developpez.com
le 01/08/2018 à 16:44
Si je ne me trompe pas clic droit -> build option ->Other option -> -std=c11
Avatar de Philippe JCG Philippe JCG - Membre régulier https://www.developpez.com
le 01/08/2018 à 18:34
J'utilise la version 17.12 de Code::Blocks.
Avatar de Onunthen Onunthen - Futur Membre du Club https://www.developpez.com
le 01/08/2018 à 21:19
Citation Envoyé par Philippe JCG Voir le message
J'utilise la version 17.12 de Code::Blocks.
Slt Phiilippe je peut avoir le lien de téléchargement !!
Avatar de Philippe JCG Philippe JCG - Membre régulier https://www.developpez.com
le 01/08/2018 à 21:24
Pour la version 17.12 il faut télécharger le fichier codeblocks-17.12mingw-setup.exe, c'est important qu'il y ait mingw dans le nom du fichier, pour que tout fonctionne. On le trouve là : http://www.codeblocks.org/downloads/26 et ça fait partie du projet Sourceforge.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.