Comment puis-je entrer un mot de passe à l'aide de Perl et de remplacer les caractères par '*'?
J'ai un script Perl qui oblige l'utilisateur à entrer un mot de passe. Comment puis-je écho seulement " * " à la place du personnage que les types d'utilisateurs, qu'ils le type il?
Je suis avec Windows XP/Vista.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez jouer avec Term::ReadKey. Voici un exemple très simple, avec une détection pour revenir en arrière et effacer la clé. Je l'ai testé sur Mac OS X 10.5, mais selon l' ReadKey manuel il devrait fonctionner sous Windows. Le manuel indique que sous Windows à l'aide de non-blocage de lit (
ReadKey(-1)
) échouera. C'est pourquoi je suis en utilisant ReadKey(0) qui est fondamentalementgetc
(plus sur getc dans le libc manuel).Dans le passé, j'ai utilisé IO::Invite pour cela.
Si vous ne voulez pas utiliser les paquets... Uniquement sous UNIX
chomp
serait mieux quechop
Vous devriez jeter un oeil à Term::ReadKey ou Win32::Console. Vous pouvez utiliser ces modules pour lire le seul clavier et émettent '*' ou whathever.
Bâtiment sur Pierr-Luc du programme, juste ajouté un peu de contrôle sur les barres obliques inverses. Avec cela, vous ne pouvez pas garder la touche barre oblique inverse pour toujours:
à l'aide de Pierr-Luc programme
Avez-vous essayé de stocker la chaîne de caractères (de sorte que votre programme peut toujours le lire) et de trouver sa longueur puis de créer une chaîne de la même longueur, mais seulement d'utiliser '*'?