La création de nouveaux mots de passe est une activité assez peu passionnante, d'autant que dans certains contextes on peut être amené à répéter l'opération plusieurs fois par jour. Plutôt que d'avoir à réfléchir - et donc de produire un résultat influencé par les travers de l'esprit humain - il est préférable de s'en remettre totalement à la machine.
L'aléa est bien meilleur, et le résultat est obtenu bien plus facilement. Il est bien sûr question ici de vrais mots de passe : large palette de caractères, longueur correcte, totalement aléatoires.
Voici deux fonctions assez simples qui trouveront leur place tout naturellement dans votre .bashrc
ou .bash_profile
sur *BSD (FreeBSD, Mac OS X, etc.). La seule condition étant de disposer des commandes jot
et rs
déjà présentées dans les articles "jot et seq, créer des séquences en ligne de commande" et surtout "Les bons mots de passe…".
Cette première fonction crée 5 mots de passe aléatoires dont les caractères sont pris entre les codes ASCII 32
(espace) et 126
(tilde). Par défaut, ces mots de passe font 25 caractères de long, mais la commande génère en fait un tirage de 500 caractères, ce qui permet de fabriquer 5 mots de passe de 100 chiffres, lettres, symboles en indiquant la longueur souhaitée comme paramètre. L'astuce ici tient dans l'utilisation de la tabulation comme séparateur en sortie de jot
, ce qui permet d'avoir l'espace présent dans les mots de passe en sortie.
mdp-complexe() { jot -s $'\t' -r -c 500 32 126 | rs -c$'\t' -g0 0 ${1-25} | head -5 }
Exemple d'utilisation :
$ mdp-complexe fnc\Y}02PSc6}{;0`T}LOeN?\ 5W Y1Y8!o<VlTA2vuE}SU)g?] 'kGhRa=u|hJW#;6aDd[A&UR_/ n|$_f3S?[`pO2":+0e<;aTi\v .nU\i.PhbPE5TfuXY)g+DiN~g
En imposant la longueur :
$ mdp-complexe 50 9Tu1StsL $Gk@K<X\R)xKv{JXYe|g>L^2T;|*GMASee@HX.Epj T%2 N;VvLFVi]s>_~xpo^~vD8b2.Fb$02ay9sLgjW#,TQ>8JAO 7EyWUC)Cqm2F,72mIf$#vh3<sTx%j>*v't{Fump=Fb5cJeZir$ RfS638d~a.T#StF.t3%Z*`RG)/?#; H?liH2DielVvs#4IBp0a G`OyIOzpYtt5Sh!92/zdp7^C98r.OtIV8Fk_ilYCvVI6~e@17T
Cette seconde fonction est basée sur la première, mais un filtrage est imposé à la sortie de jot pour ne garder qu'un sous-ensemble des caractères générés. Ici, les caractères a-z
, A-Z
, 0-9
, _
, /
et -
sont conservés. L'approche est relativement simple : il suffit d'ajouter à la liste entre [ ]
les caractères que l'on souhaite conserver dans les mots de passe :
mdp-simple() { jot -s $'\t' -r -c 500 32 126 | sed "s,[^a-zA-Z0-9_/-]"$'\t'",,g"|\ rs -c$'\t' -g0 0 ${1-25} | head -5 }
Ce qui donne :
$ mdp-simple y0q/EKoZKN9ZqGGhr1triaB0l VMFUNYNpopAu9NleSv0BxuuTh W07eE4ef1A99yAl0UmP6EHo6_ 9X4CWx7qgML6qxn9Y0nxhONpr lw_eY4DYY414mrllNxe/FSUfM
Stockez ensuite le mot de passe choisi dans votre trousseau de mots de passe sécurisé.