Vote des utilisateurs
0
0
Détails
Licence : Freeware
Mise en ligne le 28 juillet 2018
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Générateur simple d'un mot de passe aléatoire
Générateur simple d'un mot de passe aléatoire
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.
Salut , je voudrais bien savoir pourquoi à la compilation de ton programme j'ai une erreur du genre
or je programme avec code block 16.01.
||=== 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)) ===|
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)) ===|
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.
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.
Si je ne me trompe pas clic droit -> build option ->Other option -> -std=c11
J'utilise la version 17.12 de Code::Blocks.
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.