Générateur de mots de passe
Transcription
Générateur de mots de passe
Le programme du générateur de mots de passe, rédigé en Turbo Pascal, comporte trois fichiers sources : le script de base (M_PASSE.PAS), associé à deux unités : l’une contenant les routines utilitaires (U_FPUTIL.PAS), l’autre étant réservée au générateur de nombres pseudo-aléatoires (U_GNPSAL.PAS). Deux choix se présentent, conformément aux souhaits exprimés sur le forum, concernant la possibilité de choisir la longueur du mot de passe, ainsi que les nombres de chaque type de caractères : # Option 1: choix du nombre total de caractères, et des probabilités de tirage (exprimées en pourcentage, donc sous forme d’entiers) de chaque catégorie (chiffres, majuscules, minuscules et symboles) ; # Option 2 : choix préalable des nombres de chacun des quatre types de caractères. Dans tous les cas l’ensemble des caractères disponibles couvre l’intervalle [#033 .. #126] de la table ASCII, et la longueur du mot de passe est limitée à 50. S’y ajoutent trois options supplémentaires, déterminantes vis-à-vis du résultat : a) le choix du sous-domaine [Imin .. Imax] de [1 .. 32] sur lequel les symboles feront l’objet d’un tirage aléatoire (il y en a en tout 32) ; b) La valeur d’un facteur d’atténuation (Fa), réel compris entre (10^-4) et l’unité ; le poids statistique du caractère sortant est multiplié par ce facteur, ce qui rend moins probable (sans l’interdire) la réapparition immédiate du même caractère - effet bien visible sur une séquence de 50 chiffres, ou mieux de 50 symboles pris sur [Imin .. Imin+4] . Dans le cas où Fa=1 les tirages deviennent indépendants des précédents, et plusieurs doublets (**) peuvent apparaître ; les triplets (***) ne sont alors pas rares. Le choix d’un facteur très petit ou nul (Fa < 10^-19 environ) conduirait au blocage du programme, dès l’intervention d’un mot de passe trop long. c) le mode d’initialisation du générateur de nombres pseudoaléatoires, qui peut être physique (en lien avec l’horloge interne) ou manuel – par saisie d’un entier de l’intervalle [0 .. 2^31-1] ; il est ainsi possible de retrouver un mot de passe donné à partir d’un nombre entier. Se présente enfin la possibilité de consigner l’ensemble des données (paramètres et mot de passe) dans un fichier à l’endroit voulu, à défaut dans (D:\ZZZ.TXT) .