Générateur aléatoire de mot sde passe

cengokill Messages postés 262 Date d'inscription   Statut Membre Dernière intervention   -  
VanDog Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, Je voudrais créer un tout petit programme générant un mot de passe aléatoirement, pour plus de sécurité dans mes mots de passe. Pour celà, j'utilise Microsoft Visual Basic 2010 Express. L'utilisateur doit entrer un nombre de caractères voulus, puis il clique sur le bouton "générer". J'aimerais avoir de l'aide concernant le codage du logiciel, pour générer aléatoirement une suite de caractères.

Merci d'avance ;-)
/Cengokill
A voir également:

1 réponse

VanDog Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   13
 
Je vais tenter de te dégager ton programme comme je le ferai et dans les grandes lignes d'accord ?

Tu as une phase de saisie qui retient combien de char tu veux. Appelons cette variable
nChar
.

Tu as besoin d'un
std::string res
, le résultat.
Tu auras une boucle
for de 0 à nChar
qui ajoutera un caractère aléatoire à res.

Pour ceci, je te conseille l'utilisation du code ASCII (
https://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters
)

En sachant que dans le code ASCII, les lettres MAJUSCULES précèdent les lettres minuscules et sont consécutives. Le char 'A' a pour valeur 65 ce me semble. Ce qui fait que si tu fais
std::cout << (int)'A'
tu obtiendras 65.
Dès lors, tu peux ajouter une lettre facilement par transtypage:
/* Il y a 26 lettres dans l'alphabet, tu as l'ensemble des MAJ et des min, donc 2*26 de longueur.
Je te propose donc : */ 
int start = (int)'A'; // transtypage explicite
int end = (int)'z'; // transtypage explicite
int length = end - start;
res += (char) ( start + rand() % length * 2 ) 


Je passe par des variables pour pas de donner de fausses valeurs entières (à la 65 donnée précédemment... :p ).

Après, plutôt qu'un simple rand() tu peux affiner tes critères, une majuscule une lettre sur deux, rajouter les chiffres pour un mot de passe alphanumérique... à toi de t'amuser avec la table ASCII :)

Edit suppression de la signature contraire à la charte
0