Générateur de mots de passe pwgen : script pour terminal

Forum Forums General Other Languages French Générateur de mots de passe pwgen : script pour terminal

  • This topic has 5 replies, 3 voices, and was last updated Dec 1-9:46 am by Rantanplan.
Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #93950
    Member
    Rantanplan

      Bonjour,

      j’ai cherché, probablement mal, mais je n’ai pas trouvé de générateur de mots de passe dans antiX.
      En fait, ça ne me gêne pas et pas sûr que ce soit nécessaire d’avoir un truc qui occupe de la place
      et dont on se sert peu.

      J’ai trouvé un générateur de quelques 10 de ko qui s’exécute en terminal : pwgen v2.0.8-2 chez Debian.
      Je n’ai pas vérifié s’il était présent dans Synaptic.
      Dans ce paquet, on ne récupère que l’exécutable, ça fait économiser de la place.

      Quand on en a besoin, on le copie dans /usr/bin ou bien on ouvre un terminal à l’endroit où est stocké cet utilitaire.
      On saisira pwgen dans le terminal et on obtiendra illico une liste de mots de passe.
      Si on veut, on peut paramêtrer. Taper pwgen –help et faire son marché.

      Bon j’ai voulu m’amuser et écrire un script débile comme Rantanplan 🙂
      Le voici et vous pouvez en faire ce que vous voulez, même l’ignorer 🙂 :

      #!/bin/bash
      clear
      if [ ! -e /usr/bin/pwgen ] ; then echo "
      
      Il semblerait que 'pwgen' ne soit pas installé dans /usr/bin.
      
      Veuillez vérifier, puis relancez le script, s'il vous plaît.
      
      Merci.
      
      Gros bisous :-p
      
      "
      exit
      fi
      clear
      option=-1s
      longueur=12
      liste=10
      read -p "
      Ce script utilise 'pwgen' pour générer un ou plusieurs mots de passe.
      Voulez-vous obtenir une liste de 10 mots de passe de 12 caractères
      avec au moins :
      	 - 1 minuscule,
      	 - 1 majuscule,
      	 - 1 chiffre,
      	 - et 1 caractère spécial.
         
      	 Si OUI, appuyez simplement sur la touche Entrée
      
      	 si NON sur n'importe quelle autre touche
      	 puis validez avec Entrée ---> " mdp_defaut 
      # liste de mots de passe générées par défaut
      if [ -z $mdp_defaut ] ;
      then  clear && pwgen -1scny $longueur $liste
      else 
      # générer une liste de mots de passe avec des chiffres exclusivement
      read -p "
      
      Souhaitez-vous uniquement une suite de chiffres ?
      
      	 Si OUI, appuyer simplement sur Entrée
           
      	 si NON, sur toute autre touche ---> " chiffres
      if [ -z $chiffres ] ; then option="-1A -r abcdefghijklmnopqrstuvwxyz"
      read -p "
      La longueur du mot de passe est par défaut de 12 caractères.
      
      Voulez-vous changer cette valeur ?
      
      	 Si NON, appuyez simplement sur la touche Entrée,
      
      	 si OUI, saissisez la nouvelle longueur du mot de passe ---> " nelle_long
      if [ ! -z $nelle_long ] ; then longueur=$nelle_long 
      fi
      read -p "
      
      La valeur par défaut de la liste de mots de passe est définie à 10.
      
      Voulez-vous changer cette valeur défaut ?
      
      	 Si NON, appuyez simplement sur la touche Entrée,
      
      	 si OUI, saissisez le nombre de mots de passe 
      	 qui apparaîtra dans la liste qui sera générée ---> " nelle_liste
      	 fi
      if [ ! -z $nelle_liste ] ; then liste=$nelle_liste 
      clear && pwgen $option $longueur $liste
      exit
      fi
      # possibilité d'exclure les chiffres du mot de passe
      clear && read -p "
      Souhaitez-vous exclure les chiffres du ou des mots de passe à générer ?
      
      	 Si OUI, appuyer simplement sur Entrée
           
      	 si NON, sur toute autre touche ---> " no_chiffres
      if [ -z $no_chiffres ] ; then option=$option\0 
      fi
      # possibilité d'exclure les majuscules du mot de passe
      read -p "
      
      Souhaitez-vous exclure les majuscules 
      du ou des mots de passe à générer ?
      
      	 Si OUI, appuyer simplement sur Entrée
      
      	 si NON, sur toute autre touche ---> " no_majuscules
      if [ -z $no_majuscules ] ; then option=$option\A 
      fi
      # possibilité d'exclure les ambigus : 1, I et l ; O et 0 ; etc.
      read -p "
      
      Souhaitez-vous exclure les caractères ambigus
      (l, I et 1, O et 0, etc.) du ou des mots de passe à générer ?
      
      	 Si OUI, appuyer simplement sur Entrée
      
      	 si NON, sur toute autre touche ---> " no_ambigus
      if [ -z $no_ambigus ] ; then option=$option\B 
      fi
      # possibilité d'exclure les voyelles et chiffres ambigus
      read -p "
      
      Souhaitez-vous exclure les voyelles qui pourraient être confondues
      avec des chiffres du ou des mots de passe à générer ?
      
      	 Si OUI, appuyer simplement sur Entrée
      
      	 si NON, sur toute autre touche ---> " no_voyel
      if [ -z $no_voyel ] ; then option=$option\v 
      fi
      # possibilité exclure certains caractères du mot de passe
      read -p "
      
      Souhaitez-vous exclure certains caractères ?
      
      	 Si NON, appuyer simplement sur Entrée
      
      	 si OUI, saisir ce ou ces caracètres sans espace ---> " exclure
      if [ ! -z $exclure ] ; then option="$option -r $exclure" 
      fi
      # changer la longueur par défaut du mot de passe
      clear
      read -p "
      
      La longueur par défaut du mot de passe est de 12 caractères.
      
      Voulez-vous changer cette valeur ?
      
      	 Si NON, appuyez simplement sur la touche Entrée,
      
      	 si OUI, saissisez la nouvelle longueur du mot de passe ---> " nelle_long
      if [ ! -z $nelle_long ] ; then longueur=$nelle_long
      fi
      # changer la longueur de la liste de mots de passe par défaut
      read -p "
      
      La valeur par défaut de la liste mots de passe est définie à 10.
      Voulez-vous changer cette valeur défaut ?
      
      	 Si NON, appuyez simplement sur la touche Entrée,
      
      	 si OUI, saissisez le nombre de mots de passe 
      	 qui apparaîtra dans la liste qui sera générée ---> " nelle_liste
      if [ ! -z $nelle_liste ] ; then liste=$nelle_liste 
      fi
      fi
      clear
      pwgen $option $longueur $liste
      exit

      Si vous souhaitez l’essayer, ne soyez pas exigeant avec et soyez aussi indulgent svp,
      copier et coller dans Geany ou Leafpad ou autre.
      Enregistrer avec le nom de votre choix avec l’extension .sh (facultative, je crois).
      Puis, un coup de chmod a+x et le tour est joué.

      Dans un terminal ouvert à l’endroit où se trouve le script, on tape ./[le_nom_du_fichier.sh]
      et Entrée et suivre les questions.

      Amitiés.

      • This topic was modified 5 months, 2 weeks ago by Rantanplan.

      Vive antiX !
      Vive le Groland !

      #93960
      Member
      Robin
        Helpful
        Up
        1
        ::

        C’est vraiment une bonne recommandation, Rantanplan, merci beaucoup ! Il y a en effet beaucoup de gens qui ne connaissent pas encore cet outil utile.

        pwgen est d’ailleurs facilement installable par défaut dans antiX :

        $ apt-cache policy pwgen
        pwgen:
          Installiert:           2.08-2
          Installationskandidat: 2.08-2
          Versionstabelle:
         *** 2.08-2 100
                100 /var/lib/dpkg/status

        L’installation est très simple, il n’est pas nécessaire de télécharger manuellement un paquet externe quelque part :

        sudo apt-get update
        sudo apt-get install pwgen

        Je recommande toujours de l’appeler avec ces paramètres si l’on veut avoir des mots de passe très sûrs.

        $ pwgen -cyns1 60 10
        "l["k149<5988=AHz~\t8}.~')se%(=ro]|%kRkNl=r~tAl$K4*RHDzg|.4I
        8b_EXsW(0#UE]I.x^r=M&wEA"),ojd]0J^aj*+p4%3dLMgM\2EN:Uxr|Ey')
        *@6t(#7$pmYJ8o^CBSvWT1J2JA$K,Tvj$rwq!1'M*kOaGDz[87u_JGqWVoI?
        5[-0.Z;*PU2F0a>XgsOv3sTG5t~^1RK0VE\T2M'#\X'fb5tE]CMRv'^.xM\9
        }if^[Ck%7e1Zovs6-vtqj#2NGCNz$F;tiok2Bc~rSeg'|O@QKIC'Pr:9NDGN
        ;D~V6;cq4db<WFqkQLgpyO%:7nKBN8js&8|U'\g8rK34sYR6YF3mU8rzwtZZ
        _Ox+Sb\,-R-pz$:Ia85RUl0CNEtfs#'!0umU[9"+LKzCGio,t,O''_st4Zgs
        'e_7f5I$W0c3"H<(rp";J||C#a4YPI#cVlV4R"J+2!t~[o9BwJ[WhbQ()wF+
        .C:FETMJ7\=vXzZ37afes);u~u_tg42iIt@ZayY6<T$qGr_Q/&_VS=gUR#V+
        1CaI0kWWAe'X)'>oEDSu|CL<4<L*rh^5(M7+Ol$S@~PAc~1gj+F'ey~R#A^m

        Chaque ligne contient un seul mot de passe, chacun d’entre eux étant long de 60 caractères, comme commandé.
        Mais attention, tous les programmes ou sites web n’acceptent pas des mots de passe aussi sûrs. Il faut donc parfois se contenter de paramètres moins sûrs, que l’on peut ensuite composer avec ton script.

        Meilleures salutations
        Robin

        Windows is like a submarine. Open a window and serious problems will start.

        #93961
        Member
        PPC
          Helpful
          Up
          1
          ::

          Merci @Rantanplan

          pwgen -cyns1 60 10

          Vous m’avez fait gagner du temps en cherchant dans l’aide de pwgen… Pour moi c’est suffisant, ça génère 1 seul mot de passe:

          pwgen -cyns1 20 1

          edit:

          pwgen -cyns1 20 1 | xclip -selection "clipboard"

          envoie le mot de passe généré au cliboard, prêt à être collé là où vous en avez besoin

          P.

          • This reply was modified 5 months, 2 weeks ago by PPC.
          #94035
          Member
          Rantanplan
            Helpful
            Up
            0
            ::

            Bonjour @Robin et @PPC,

            merci pour vos réponses et les astuces qu’elles contiennent : vous êtes des champions tous les deux.

            Le passage par le presse-papiers est une bonne idée.

            Question :
            Ne faudrait-il pas le nettoyer (option clear ou delete, si elle existe) après usage afin d’éviter qu’un curieux lise le mot de passe en clair ?
            Ou au minimum écraser le contenu avec :
            echo "null" | xclip -selection "clipboard"

            Amitiés.

            Vive antiX !
            Vive le Groland !

            #94039
            Member
            PPC
              Helpful
              Up
              0
              ::

              Ne faudrait-il pas le nettoyer (option clear ou delete, si elle existe) après usage afin d’éviter qu’un curieux lise le mot de passe en clair ?

              Oui… ou exécutez simplement la même commande à nouveau, et un mot de passe « inutile » sera stocké dans le presse-papiers 🙂

              P.

              #94582
              Member
              Rantanplan
                Helpful
                Up
                0
                ::

                Bonjour,

                le script publié dans ce message
                contient des incohérences.
                Il sert probablement à rien pour les geeks qui fréquentent le forum.

                Je l’ai retravaillé un peu.
                Peut-être n’y verrez-vous aucune différence.

                À mon avis, il peut être encore amélioré en y ajoutant des fonctions, mais je ne sais pas encore le faire (faudra attendre un peu, beaucoup, passionément, à la folie, pas du tout ? :-D).

                Bref, voici la nouvelle mouture du script débile dont j’assume en être l’auteur 🙂 :

                #!/bin/bash
                # écrit par Rantanplan le 1er décembre 2022
                # vérifie que pwgen est installé
                clear
                if [ ! -e /usr/bin/pwgen ] ; then read -p "
                
                Il semblerait que 'pwgen' ne soit pas installé dans /usr/bin.
                
                Voulez-vous l'installer maintenant ? 
                
                Si OUI, appuyer sur la lettre 'O' ---> " install_pwgen
                if [[ $intall_pwgen = "o" || "O" ]]
                then 
                sudo apt-get update 
                sudo apt-get install pwgen
                else exit 
                fi
                fi
                clear
                # définition des variables
                option=-1s
                longueur=12
                liste=10
                read -p "
                Ce script utilise 'pwgen' pour générer un ou plusieurs mots de passe.
                Voulez-vous obtenir une liste de 10 mots de passe de 12 caractères avec au moins :
                	 - 1 minuscule,
                	 - 1 majuscule,
                	 - 1 chiffre,
                	 - et 1 caractère spécial.
                   
                	 Si OUI, appuyez sur la touche Entrée
                
                	 si NON sur n'importe quelle touche sauf la barre d'espace
                	 puis validez avec Entrée ---> " mdp_defaut 
                # générer une liste de mots de passe sûrs
                if [ -z $mdp_defaut ] ;
                then  clear && echo "<<<<< LISTE DES MOTS DE PASSE >>>>>" && pwgen -1scny $longueur $liste
                echo "<<<<<<<<< FIN DE LA LISTE >>>>>>>>>"
                exit
                else 
                # générer une liste de mots de passe avec des chiffres exclusivement
                read -p "
                Souhaitez-vous uniquement une suite de chiffres ?
                
                	 Si OUI, appuyer sur Entrée
                     
                	 si NON, sur toute autre touche sauf la barre d'espace ---> " chiffres	 
                if [ -z $chiffres ] ; then option="-1A -r abcdefghijklmnopqrstuvwxyz"
                read -p "
                La longueur du mot de passe est de 12 caractères par défaut.
                
                Voulez-vous changer cette valeur ?
                
                	 Si NON, appuyez sur la touche Entrée,
                
                	 si OUI, saissisez la nouvelle valeur ---> " nelle_long
                read -p "
                La valeur par défaut du nombre de mots de passe à produire est fixée à 10.
                
                Voulez-vous changer cette valeur ?
                
                	 Si NON, appuyez simplement sur la touche Entrée,
                
                	 si OUI, saissisez la nouvelle valeur  ---> " nelle_liste
                if [ ! -z $nelle_liste ]  ; then liste=$nelle_liste  
                fi
                if [ ! -z $nelle_long ] ; then longueur=$nelle_long  
                fi
                clear 
                echo "<<<<< LISTE DES MOTS DE PASSE >>>>>" && pwgen $option $longueur $liste
                echo "<<<<<<<<< FIN DE LA LISTE >>>>>>>>>"
                exit
                fi
                # possibilité d'exclure les chiffres du mot de passe
                clear && read -p "
                Souhaitez-vous exclure les chiffres ?
                
                	 Si NON, appuyer sur Entrée
                     
                	 si OUI, sur toute autre touche sauf la barre d'espace ---> " no_chiffres
                if [ ! -z $no_chiffres ] ; then option=$option\0 
                fi
                fi 
                # possibilité d'exclure les majuscules du mot de passe
                clear && read -p "
                Souhaitez-vous exclure les majuscules ?
                
                	 Si NON, appuyer simplement sur Entrée
                
                	 si OUI, sur toute autre touche sauf la barre d'espace ---> " no_majuscules
                if [ ! -z $no_majuscules ] ; then option=$option\A 
                fi
                # possibilité d'exclure les ambigus : 1, I et l ; O et 0 ; etc.
                clear && read -p "
                Souhaitez-vous exclure les caractères ambigus (l, I et 1, O et 0, etc.) ?
                
                	 Si NON, appuyer simplement sur Entrée
                
                	 si OUI, sur toute autre touche sauf la barre d'espace ---> " no_ambigus
                if [ ! -z $no_ambigus ] ; then option=$option\B 
                fi
                # possibilité d'exclure les voyelles et chiffres ambigus
                clear && read -p "
                Souhaitez-vous exclure les voyelles
                qui pourraient être confondues avec des chiffres ?
                
                	 Si NON, appuyer simplement sur Entrée
                
                	 si OUI, sur toute autre touche sauf la barre d'espace ---> " no_voyel
                if [ ! -z $no_voyel ] ; then option=$option\v 
                fi
                # possibilité d'inclure des caractères spéciaux
                clear && read -p "
                Souhaitez-vous exclure les caractères spéciaux ?
                
                	 Si NON, appuyer simplement sur Entrée
                
                	 si OUI, sur toute autre touche sauf la barre d'espace   ---> " symbol
                if [ -z $symbol ] ; then option=$option\y 
                fi
                # possibilité exclure certains caractères du mot de passe
                clear && read -p "
                Souhaitez-vous exclure certains caractères ?
                
                	 Si NON, appuyer simplement sur Entrée
                
                	 si OUI, saisir ce ou ces caracètres sans espace ---> " exclure
                if [ ! -z $exclure ] ; then option="$option -r $exclure" 
                fi
                # changer la longueur par défaut du mot de passe
                clear && read -p "
                La longueur du mot de passe est de 12 caractères par défaut.
                
                Voulez-vous changer cette valeur ?
                
                	 Si NON, appuyez sur la touche Entrée,
                
                	 si OUI, saissisez la nouvelle longueur du mot de passe ---> " nelle_long
                if [ ! -z $nelle_long ] ; then longueur=$nelle_long
                fi
                # changer la longueur de la liste de mots de passe par défaut
                clear && read -p "
                La valeur par défaut de la liste mots de passe est définie à 10.
                Voulez-vous changer cette valeur ?
                
                	 Si NON, appuyez sur la touche Entrée,
                
                	 si OUI, saissisez le nombre de mots de passe 
                	 qui apparaîtra dans la liste qui sera générée ---> " nelle_liste
                if [ ! -z $nelle_liste ] ; then liste=$nelle_liste 
                fi
                clear
                echo "<<<<< LISTE DES MOTS DE PASSE >>>>>" && pwgen $option $longueur $liste
                echo "<<<<<<<<< FIN DE LA LISTE >>>>>>>>>"
                exit

                Paix et amitié
                Paco kaj amikeco

                • This reply was modified 5 months, 1 week ago by Rantanplan.

                Vive antiX !
                Vive le Groland !

              Viewing 6 posts - 1 through 6 (of 6 total)
              • You must be logged in to reply to this topic.