it-swarm.com.de

Eingabe des Befehlszeilenpassworts in Python

Sie wissen, wie Sie unter Linux aufgefordert werden, das Kennwort einzugeben, wenn Sie Sudo-Inhalte ausprobieren. Während der Eingabe wird im Terminalfenster nichts angezeigt (das Kennwort wird nicht angezeigt).

Gibt es eine Möglichkeit, dies in Python zu tun? Ich arbeite an einem Skript, das so vertrauliche Informationen erfordert, und möchte, dass es beim Schreiben ausgeblendet wird.

Mit anderen Worten, ich möchte das Kennwort vom Benutzer erhalten, ohne das Kennwort anzuzeigen.

191
Nacht

Verwenden Sie getpass.getpass() :

from getpass import getpass
password = getpass()

Eine optionale Eingabeaufforderung kann als Parameter übergeben werden. Der Standardwert ist "Password: ".

Beachten Sie, dass für diese Funktion ein ordnungsgemäßes Terminal erforderlich ist, damit das Echo von eingegebenen Zeichen deaktiviert werden kann. Weitere Informationen finden Sie unter „GetPassWarning: Kann das Echo auf dem Terminal nicht steuern“, wenn IDLE ausgeführt wird .

240
Sven Marnach
import getpass

pswd = getpass.getpass('Password:')

getpass funktioniert unter Linux, Windows und Mac.

152
Nafscript

Verwenden Sie dazu getpass .

getpass.getpass - Fordert den Benutzer zur Eingabe eines Kennworts auf, ohne ein Echo zu erhalten

26
RanRag

Dieser Code gibt anstelle jedes Buchstabens ein Sternchen aus.

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