Microsoft Visual Basic 2010 Express : générer un mot de 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 à 01:50
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 1 juil. 2015 à 02:40
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 ;-)



A voir également:

2 réponses

dbz83 Messages postés 464 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 28 septembre 2018 38
29 juin 2015 à 02:00
Bonsoir,

En gros tu nous demande de t'apprendres à pirater...

Je pense que c'est contraire à la charte
0
cengokill Messages postés 252 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 19 décembre 2022 18
29 juin 2015 à 10:35
PAS DU TOUT un générateur de mot de passe aléatoire comme son nom l'indique, génère un mot de passe, c'est pourtant simple, non ?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
29 juin 2015 à 13:35
Tu sais lire au moins? Il n'a jamais parlé de logiciel de bruteforce.
Un générateur de mot de passe est un très bon exercice pour apprendre à coder, d'ailleurs.
0
cengokill Messages postés 252 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 19 décembre 2022 18 > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
29 juin 2015 à 13:38
merci :)
0
dbz83 Messages postés 464 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 28 septembre 2018 38 > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
Modifié par dbz83 le 29/06/2015 à 20:10
Bonsoir Gravgun,

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.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228 > dbz83 Messages postés 464 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 28 septembre 2018
29 juin 2015 à 21:50
Je ne t'en veut pas, l'erreur est humaine effectivement. Si je posais rhétoriquement cette question, c'était pour insister sur le message dans ses détails, car bien que je puisse comprendre que la sécurité et le respect de la charte te soient important (tant mieux d'ailleurs), il faut bien saisir de quoi on parle avant de répondre sur l'affirmative, et à défaut, demander des précisions.
0
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
1 juil. 2015 à 02:40
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

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;
}

0