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
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
A voir également:
- Microsoft Visual Basic 2010 Express : générer un mot de passe
- Microsoft office - Guide
- Oubliez Microsoft Office ! Cet équivalent totalement gratuit est parfait pour l'école, la maison et le bureau - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
- Microsoft visual c++ runtime - Guide
- Visual basic 2010 express - Télécharger - Langages
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
29 juin 2015 à 02:00
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
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
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
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; }
29 juin 2015 à 10:35
29 juin 2015 à 13:35
Un générateur de mot de passe est un très bon exercice pour apprendre à coder, d'ailleurs.
29 juin 2015 à 13:38
Modifié par dbz83 le 29/06/2015 à 20:10
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.
29 juin 2015 à 21:50