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

Fermé
cengokill Messages postés 252 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 19 décembre 2022 - 29 juin 2015 à 10:36
VanDog Messages postés 63 Date d'inscription vendredi 17 juillet 2015 Statut Membre Dernière intervention 11 février 2016 - 18 juil. 2015 à 01:06
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 vendredi 17 juillet 2015 Statut Membre Dernière intervention 11 février 2016 13
Modifié par Whismeril le 7/08/2015 à 23:16
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