Vous savez comment, dans Linux, lorsque vous essayez des produits Sudo, il vous est demandé de saisir le mot de passe et, lors de la frappe, rien ne s'affiche dans la fenêtre du terminal (le mot de passe n'est pas affiché)?
Y at-il un moyen de faire cela en Python? Je travaille sur un script qui requiert des informations aussi sensibles et souhaite qu'il soit masqué lorsque je le tape.
En d'autres termes, je veux obtenir le mot de passe de l'utilisateur sans le montrer.
Utilisez getpass.getpass()
:
from getpass import getpass
password = getpass()
Une invite facultative peut être transmise en tant que paramètre. la valeur par défaut est "Password: "
.
Notez que cette fonction nécessite un terminal approprié. Elle peut donc désactiver l’écho des caractères saisis - voir "GetPassWarning: impossible de contrôler l’écho sur le terminal" lorsqu’il est exécuté à partir d’IDLE pour plus de détails.
import getpass
pswd = getpass.getpass('Password:')
getpass fonctionne sous Linux, Windows et Mac.
Utilisez getpass à cette fin.
getpass.getpass - Demande à l'utilisateur un mot de passe sans écho
Ce code imprimera un astérisque au lieu de chaque lettre.
import sys
import msvcrt
passwor = ''
while True:
x = msvcrt.getch()
if x == '\r':
break
sys.stdout.write('*')
passwor +=x
print '\n'+passwor