Microsoft Visual Basic 2010 Express : générer un mot de passe
cengokill
Messages postés
262
Date d'inscription
Statut
Membre
Dernière intervention
-
sambia39 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
sambia39 Messages postés 610 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 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 ;-)
Merci d'avance ;-)
A voir également:
- Microsoft Visual Basic 2010 Express : générer un mot de passe
- Microsoft office - Guide
- Microsoft money - Télécharger - Comptabilité & Facturation
- Cette technique secrète permet d'avoir Windows et Microsoft Office gratuitement et à vie - Accueil - Bureautique
- Visual basic 2010 express - Télécharger - Langages
- Microsoft 365 basic - Accueil - Microsoft Office
2 réponses
Bonsoir,
En gros tu nous demande de t'apprendres à pirater...
Je pense que c'est contraire à la charte
En gros tu nous demande de t'apprendres à pirater...
Je pense que c'est contraire à la charte
Bonsoir
Pour générer un mot de passe de façon aléatoire, il est préférable d'obtenir différents caractères d'une constante de façon aléatoire et non répétitive (d'une certaine manière cela élimine le facteur plus ou moins de fréquence d'apparition des caractères mais reste à vérifier). Pour faire simple l'algorithme de génération le plus simple se repose sur deux éléments essentiels: la constante de sélection de caractère et une fonction capable de générer des nombres aléatoires.
Exemple avec un speudo code a revoir
Et comme en est dans une section en langage de programmation C/C++ cela donnerais en langage C le code ci-dessous bien entendu il y a des choses a revoir ou optimisé.
à bientôt
Pour générer un mot de passe de façon aléatoire, il est préférable d'obtenir différents caractères d'une constante de façon aléatoire et non répétitive (d'une certaine manière cela élimine le facteur plus ou moins de fréquence d'apparition des caractères mais reste à vérifier). Pour faire simple l'algorithme de génération le plus simple se repose sur deux éléments essentiels: la constante de sélection de caractère et une fonction capable de générer des nombres aléatoires.
Exemple avec un speudo code a revoir
Fonction Alea_Char( )
entier X = 62
Caractère: C = 0
Tableaux de Caractère: Vecteur_constante[X] ={ 0-9a-zA-Z }
C = Vecteur[ random % taille vecteur ]
Retourner C
Fin Fonction
Fonction GetPass( Taille n, Vecteur[N] )
Pour i de 0 jusqu'à n
Vecteur[i] = Alea_Char( )
Fin pour
Retourner Vecteur
Fin Fonction
Et comme en est dans une section en langage de programmation C/C++ cela donnerais en langage C le code ci-dessous bien entendu il y a des choses a revoir ou optimisé.
à bientôt
/* * Code generated by sambia39 1/07/2015 01:43:36 * Xjagercode GenCode (XGC) version 0.8 * admin@xjagercode.com * License GPL */ #define _XOPEN_SOURCE #define S_MAX_PASS 100 #define S_GEN_PASS 15 #include <time.h> #include <errno.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> /* Masque générateur de mots de passe on peut également jouer avec la table ASCII directement choisissant aléatoirement les informations entre 33 -127 */ const char c_str_reg[] = "0123456789" "abcdefghijklmnopqrstuvwyz" "ABCDEFGHIJKLMNOPQRSTUVWYZ"; const char c_str_reg_cplx[] = "0123456789" "abcdefghijklmnopqrstuvwyz" "ABCDEFGHIJKLMNOPQRSTUVWYZ" "&é'(-è_çà)=~#{[|^@]}°+!$" "$£ù%µ*!<>oeOE"; /* Fonction qui alloue de la mémoire dynamiquement pour le stockage du mot de passe */ char *f_alloc_str( size_t size ){ char *ptr = NULL; size_t size_str = ( (0) == size ) ? S_MAX_PASS : size; ptr = (char*)calloc( size_str, sizeof(char) ); if( (NULL) == ptr ){ fflush( stderr ); fprintf( stderr, "(%d)\t:Erreur d'allocation mémoire\n %s\n", errno,strerror(errno) ); return NULL; } return ptr; } /* Fonction qui génère un mot de passe sans la fonction crypte elle prend en paramètre la taille du mot de passe et un pointeur pointant sur une zone allouée pour le stockage du mot de passe. */ char *f_get_GenPass_no_crypt( size_t size, char *ptr ){ unsigned int i = 0; static unsigned int iseed; if( !iseed ){ iseed = 1; srand( (unsigned int)time(NULL) ); } /* Génération du mot de passe */ for( i = 0; i < size; i++ ) *(ptr+i) = c_str_reg[ rand()% (int) strlen(c_str_reg) ]; *(ptr+i) = '\0'; return ptr; } /* Fonction qui génère un mot de passe avec la fonction crypte elle prend en paramètre la taille du mot de passe et un pointeur pointant sur une zone allouée pour le stockage du mot de passe. */ char *f_get_GenPass_on_crypt( size_t size, char *ptr){ char seed = '\0'; unsigned int i = 0; char t_tab[ S_MAX_PASS ]; static unsigned int iseed; if( !iseed ){ iseed = 1; srand( (unsigned int) time(NULL) ); } /* Génération du mot de passe */ for( i = 0; i < size; i++ ) *(ptr+i) = c_str_reg[ rand() % (int) strlen(c_str_reg) ]; *(ptr+i) = '\0'; seed = c_str_reg[ rand() % (int) strlen(c_str_reg) ]; strcpy( t_tab, crypt(&seed,c_str_reg) ); strcpy( ptr, t_tab ); *(ptr+i) = '\0'; return ptr; } /* Fonction Principale */ int main( void ){ char *ptr_gen = NULL; unsigned int i = 0; fflush( stdout ); ptr_gen = f_alloc_str( S_MAX_PASS ); if( (NULL) == ptr_gen ) return EXIT_FAILURE; fprintf( stdout, "Généré avec la fonction no crypt\n-----\n" ); for( i = 0; i < S_GEN_PASS; i++ ){ memset( ptr_gen, 0, (sizeof ptr_gen/ sizeof *ptr_gen) ); ptr_gen = f_get_GenPass_no_crypt( S_GEN_PASS, ptr_gen ); fprintf( stdout, "(%d)\t:%s\n", i, ptr_gen ); } fprintf( stdout, "\nGénéré avec la fonction on crypt\n-----\n" ); for( i = 0; i < S_GEN_PASS; i++ ){ memset( ptr_gen, 0, (sizeof ptr_gen/ sizeof *ptr_gen) ); ptr_gen = f_get_GenPass_no_crypt( S_GEN_PASS, ptr_gen ); fprintf( stdout, "(%d)\t:%s\n", i, ptr_gen ); } fflush( stdout ); free( ptr_gen ); ptr_gen = NULL; return EXIT_SUCCESS; }
Un générateur de mot de passe est un très bon exercice pour apprendre à coder, d'ailleurs.
Je pensais bien faire, dans la mesure du possible je reste "prudent" sur le forum, il y a tellement de questions "illicites" que je passe la sécurité avant tout.
J'ai mal interprété son message, l'erreur est humaine, non ?
Car le "tu sais lire" signifierais que je suis qu'un imbécile à tes yeux, je comprends pas pourquoi tu essayes de me rabaisser..
Bref, j'en suis désolé cengokill.