Nous sommes le Jeu 28 Mars, 2024 17:32
Supprimer les cookies

[Réglé] Générateur de mot de passe

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Ven 09 Avr, 2004 08:40

Bonjour,
Comme le nom de mon post l'indique, je cherche un générateur de mot de passe pou Win, j'en ai trouvé un sur Framasoft, mais je voudrais que le mot de passe soit composé de 4 lettres et 2 chiffres.
Merci pour votre aide :D
WAL
wal

Messages : 34
Géo : Lausanne

Ven 09 Avr, 2004 14:02

Voici un petit programme en javacript qui peut te rendre service : je m'en sert pour générer des mots de passe de telle sorte qu'ils ne soient pas trop durs à mémoriser (le code est commenté de façon assez claire, je pense...).

Code: Tout sélectionner
/*   Génère une chaine de caractères 'facile à mémoriser' ;) , composée de lettres, chiffres et signes de ponctuation  :
      - longueur : indique le nombre de caractères (par défaut 8) ;
      - majuscules : nombre maximum de majuscules (par défaut 1);
      - nb_chiffres : nombre maximum de chiffres (par défaut 1) ;
      - nb_ponctuations : nombre maximum de signes de ponctuation (par défaut 0).
*/

function genpw(l, m, c, p) {
/*   l : longueur attendue
   m : nombre de majuscules
   c : nombre de chiffres
   p : nombre de ponctuations */

//   Types de caractère
   var VOYELLE = 0;
   var CONSONNE = 1;
//   Initialisation des tableaux de référence
   var voyelles = new Array('a', 'e', 'i', 'o', 'u', 'y');
   var consonnes = new Array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z');
   var chiffres = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
   var ponctuations = new Array('<', '>', ',', '?', ';', '.', ':', '/', '!', '%', '$', '&', '(', '-', '_', ')', '=', '+');
//   Variable de retour
   var result = '';
//   Type de caractère actuel (tirage aléatoire)
   var type_car = Math.round(Math.random());

//   Initialisation des paramêtres si non fournis
   if ( isNaN(l) )
      l = 8;
   if ( isNaN(m) )
      m = 1;
   if ( isNaN(c) )
      c = 1;
   if ( isNaN(p) )
      p = 0;
//   On boucle jusqu'à la longueur attendue
   while ( result.length < l ) {
      if ( type_car == VOYELLE ) {
/*   Tirage aléatoire d'une voyelle.
   Si les majuscules sont autorisées, tirage aléatoire de la casse */
         if ( (m > 0) && Math.round(Math.random()) ) {
            result += voyelles[Math.round((voyelles.length - 1) * Math.random())].toUpperCase();
            m--;
         } else {
            result += voyelles[Math.round((voyelles.length - 1) * Math.random())];
         }
//   Le prochain caractère sera une consonne
         type_car = CONSONNE;
      } else {
/*   Tirage aléatoire d'une consonne.
   Si les majuscules sont autorisées, tirage aléatoire de la casse */
         if ( (m > 0) && Math.round(Math.random()) ) {
            result += consonnes[Math.round((consonnes.length - 1) * Math.random())].toUpperCase();
            m--;
         } else {
            result += consonnes[Math.round((consonnes.length - 1) * Math.random())];
         }
//   Le prochain caractère sera une voyelle
         type_car = VOYELLE;
      }
//   Ajout éventuel d'un chiffre aléatoire
      if ( (c > 0) && Math.round(Math.random()) && (result.length < l) ) {
         result += chiffres[Math.round((chiffres.length - 1) * Math.random())];
         c--;
      }
//   Ajout éventuel d'un signe de ponctuation aléatoire
      if ( (p > 0) && Math.round(Math.random()) && (result.length < l) ) {
         result += ponctuations[Math.round((ponctuations.length - 1) * Math.random())];
         p--;
      }
   }
   return result;
}

//   Inclus un formulaire dans la page à l'endroit où le script est appelé
document.write('<form name="pwgen">');
document.write('<label>Longueur&nbsp;:&nbsp;<input name="longueur" type="text" size="2" value="8" /></label>&nbsp;');
document.write('<label>Majuscules&nbsp;:&nbsp;<input name="majuscules" type="text" size="2" value="1" /></label>&nbsp;');
document.write('<label>Chiffres&nbsp;:&nbsp;<input name="nb_chiffres" type="text" size="2" value="1" /></label>&nbsp;');
document.write('<label>Ponctuations&nbsp;:&nbsp;<input name="nb_ponctuations" type="text" size="2" value="0" /></label><br>');
document.write('<input name="pw" type="text" readonly="oui" size="8" />');
document.write('<input type="button" name="gen" Value="Générer un mot de passe" onclick="this.form.pw.value=genpw(longueur.value, majuscules.value, nb_chiffres.value, nb_ponctuations.value);" />');
document.write('<input type="reset">');
document.write('</form>');


Tu peux copier ce code tel quel dans un fichier genpw.js, puis inclure le tag suivant dans le corps d'un document html que ouvriras avec un navigateur :

Code: Tout sélectionner
<script type="text/javascript" src="genpw.js"></script>


Inutile de spécifier que ce code est librement réutilisable...
manu

Messages : 23

Ven 09 Avr, 2004 15:14

Merci pour le code, je ne l'ai pas encore essayé mais je vais le faire bientôt. :D Par contre est-ce que l'on peut spécifier l'ordre : 4 lettres et puis 2 chiffres?
Merci
WAL :D
wal

Messages : 34
Géo : Lausanne

Ven 09 Avr, 2004 20:47

A priori le code n'es pas prévu comme ça, mais tu as dedans tous les éléments qui te permettraient de faire de cette façon.
Par exemple :
Code: Tout sélectionner
function genpw(m) {
/*   m : nombre de majuscules */

//   Types de caractère
   var VOYELLE = 0;
   var CONSONNE = 1;
//   Initialisation des tableaux de référence
   var voyelles = new Array('a', 'e', 'i', 'o', 'u', 'y');
   var consonnes = new Array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z');
   var chiffres = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
//   Variable de retour
   var result = '';
//   Type de caractère actuel (tirage aléatoire)
   var type_car = Math.round(Math.random());

//   Initialisation des paramêtres si non fournis
   if ( isNaN(m) )
      m = 1;
   while ( result.length < 4 ) {
      if ( type_car == VOYELLE ) {
/*   Tirage aléatoire d'une voyelle.
   Si les majuscules sont autorisées, tirage aléatoire de la casse */
         if ( (m > 0) && Math.round(Math.random()) ) {
            result += voyelles[Math.round((voyelles.length - 1) * Math.random())].toUpperCase();
            m--;
         } else {
            result += voyelles[Math.round((voyelles.length - 1) * Math.random())];
         }
//   Le prochain caractère sera une consonne
         type_car = CONSONNE;
      } else {
/*   Tirage aléatoire d'une consonne.
   Si les majuscules sont autorisées, tirage aléatoire de la casse */
         if ( (m > 0) && Math.round(Math.random()) ) {
            result += consonnes[Math.round((consonnes.length - 1) * Math.random())].toUpperCase();
            m--;
         } else {
            result += consonnes[Math.round((consonnes.length - 1) * Math.random())];
         }
//   Le prochain caractère sera une voyelle
         type_car = VOYELLE;
      }
   while ( result.length < 6 ) {
         result += chiffres[Math.round((chiffres.length - 1) * Math.random())];
      }
   return result;
}

C'est pas testé, t'étonnes pas si ça marche pas ou mal...
manu

Messages : 23

Sam 10 Avr, 2004 08:33

Password genrator : pas libre mais freeware.

http://www.programming.de/download/password.zip

Très bien
Diavolo Rosso

Messages : 16

Dim 11 Avr, 2004 00:40

Bonsoir,

Voici le lien de la fiche de Password Generator sur Framasoft:
Password Generator

Amicalement,
Pseudgaëtan.
Pseudogaetan

Messages : 2586
Géo : Rennes (France,35)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit