web-dev-qa-db-fra.com

Obtention du mot de passe de ligne de commande dans Python

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.

191
Nacht

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.

240
Sven Marnach
import getpass

pswd = getpass.getpass('Password:')

getpass fonctionne sous Linux, Windows et Mac.

152
Nafscript

Utilisez getpass à cette fin.

getpass.getpass - Demande à l'utilisateur un mot de passe sans écho

26
RanRag

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
11
Ahmed ALaa