Page 1 sur 1

passwordGenerator

Posté : jeu. 19 avr. 2018 11:49
par tioker
Bonjour,
But: générer des mots de passe individualisés par site pour lesquels on a un compte; mot de passe qu'on peut reconstituer à la main si nécessaire. Utile quand on a pas accès à ses mots de passe enregistrés dans le navigateur :oops: ou quand le gestionnaire de mot de passe (Lastpass, Keepass...) n'est pas accessible.
Méthode: mot de passe racine + nom du site + table de traduction = nouveau mot de passe. On lit caractère par caractère le mot de passe racine et le site. Si le caractère du site est dans la table de traduction, on met le caractère traduit, sinon on met le caractère du mot de passe racine.
Important: se rappeler du mot de passe racine et de la méthode de transcription
Plus qu'un long discours, un bel exemple (j'ai utilisé un table de traduction basique (12 lettres de l'alphabet les + utilisées converties de minuscule en majuscule) mais les esprits inventifs feront sûrement bien mieux). Attention, table de traduction limitée à 12 caractères maximum; au dessus on ne traduit pas.
Formulaire de saisie
Image
Résultat
Image

Je suis intéressé par vos commentaires:
- est-ce que ça marche
- est-ce que c'est utile
- peut-il y avoir des améliorations
- ...
Cordialement

Code : Tout sélectionner

#!/bin/bash
#
FORM=$(zenity --forms \
    --title="Password Generator" \
    --text="Generator Parameters" \
    --add-entry="Original Password" \
    --add-entry="Website to Securize" \
    --add-entry="Original   Table" \
    --add-entry="Translated Table" \
    --separator="^")
if [ "$?" != 0 ] ; then exit ; fi
OIFS=$IFS; IFS="^"; TAB=( $FORM ); IFS=$OIFS
PRD=${TAB[0]} ; LPRD=${#PRD}
WWW=${TAB[1]} ; LWWW=${#WWW}
TOR=${TAB[2]} ; LTOR=${#TOR}
TED=${TAB[3]} ; LTED=${#TED}
if  [[ $LPRD -eq 0 || $LWWW -eq 0 || $LTOR -eq 0 || $LTED -eq 0 ]] ; then zenity --info --text="Parameter[s] empty" ; exit ; fi
if [[ $LTOR -ne $LTED ]] ; then zenity --info --text="Length difference in translated tables" ; exit ; fi
I=0 ; GPRD=""
while [[ $I -ne $LPRD ]]
do
	if [[ ${WWW:$I:1} -eq "" ]] ; then WWW=$WWW" " ; fi	# padding with space
	case ${WWW:$I:1} in
		${TOR:0:1}) GPRD=$GPRD${TED:0:1} ;;
		${TOR:1:1}) GPRD=$GPRD${TED:1:1} ;;
		${TOR:2:1}) GPRD=$GPRD${TED:2:1} ;;
		${TOR:3:1}) GPRD=$GPRD${TED:3:1} ;;
		${TOR:4:1}) GPRD=$GPRD${TED:4:1} ;;
		${TOR:5:1}) GPRD=$GPRD${TED:5:1} ;;
		${TOR:6:1}) GPRD=$GPRD${TED:6:1} ;;
		${TOR:7:1}) GPRD=$GPRD${TED:7:1} ;;
		${TOR:8:1}) GPRD=$GPRD${TED:8:1} ;;
		${TOR:9:1}) GPRD=$GPRD${TED:9:1} ;;
		${TOR:10:1}) GPRD=$GPRD${TED:10:1} ;;
		${TOR:11:1}) GPRD=$GPRD${TED:11:1} ;;
		*)			GPRD=$GPRD${PRD:$I:1} ;;
	esac
	I=$(( $I + 1 ))
done
zenity --info --text="Generated password $GPRD"
exit

Re: passwordGenerator

Posté : jeu. 19 avr. 2018 17:59
par tioker
Tiens, le site Numerama en parle aujourd'hui.
Je trouve que leurs idées sont bonnes, la mienne allant encore un peu plus loin, je pense.

Ah oui; on sera toujours confrontés aux sites qui forcent votre mot de passe, à ceux qui refusent certains caractères ou limitent la longueur minimum ou maximum...

A+

Re: passwordGenerator

Posté : mar. 24 avr. 2018 16:06
par JeffP
Bonjour,
Pas mal du tout, mais où peut-on le trouver ?
Ou faut-il le compiler soi-même et comment ?
Je suis novice dans ce domaine...
Merci :D

Re: passwordGenerator

Posté : mar. 24 avr. 2018 16:15
par arghlub
Salut Jeff,

C'est un script Bash (pas besoin de compil', c'est un langage interprété), donc il suffit que tu copies/colles le code dans un fichier que tu enregistres (par exemple sous ce nom «passwordgen.sh», mais tu lui donnes le nom que tu veux).

Puis tu lui donnes les droits d'exécution (dans un terminal, en étant placé dans le répertoire du script et en remplaçant le nom du script par celui que tu lui as donné) :

Code : Tout sélectionner

chmod u+x passwordgen.sh
Et enfin, pour le lancer (toujours dans un terminal) :

Code : Tout sélectionner

./passwordgen.sh
Tu peux aussi te faire un lanceur(raccourci) dans le menu, sur ton tableau de bord ou le bureau, pour pouvoir lancer facilement le script sans passer par le terminal.
;)

─── EDIT (hors-sujet) ────────────
Par rapport à ta signature : «On réfléchit puis on clique et pas l'inverse, les fichiers/programmes, c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas.»...
Sous Linux, les logiciels sont vérifiés par des devs avant d'intégrer ton gestionnaire de paquets.
De plus, là le p'tit code de tioker (merci à lui ;) ) est “ouvert” donc pas d'inquiétude. Quand un logiciel ou un code est open-source, on peut en vérifier le code... on est pas sous W$ où beaucoup de choses sont fermées et où l'on doit installer des .exe obscurs trouvés sur le net.