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 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
Résultat
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