411 Stimmen

Eingabe eines versteckten Passworts

Sie wissen, wie in Linux, wenn Sie versuchen, einige Sudo Zeug es fordert Sie auf, das Passwort eingeben und, wie Sie tippen, nichts im Terminal-Fenster angezeigt wird (das Passwort wird nicht angezeigt)?

Gibt es eine Möglichkeit, dies in Python zu tun? Ich arbeite an einem Skript, das so sensible Informationen benötigt und möchte, dass sie bei der Eingabe ausgeblendet werden.

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

1voto

Sagar Punkte 354

Hier ist mein Code, der auf dem Code basiert, der von @Ahmed ALaa

Merkmale:

  • Funktioniert für Passwörter mit bis zu 64 Zeichen
  • Akzeptiert Rücktasteingabe
  • Ausgänge * Zeichen (DEC: 42 ; HEX: 0x2A) anstelle des Eingabezeichens

Nachteile:

  • Funktioniert nur unter Windows

Die Funktion secure_password_input() gibt das Passwort als string wenn er angerufen wird. Sie akzeptiert eine Passwort-Abfrage Zeichenfolge, die dem Benutzer zur Eingabe des Passworts angezeigt wird

def secure_password_input(prompt=''):
    p_s = ''
    proxy_string = [' '] * 64
    while True:
        sys.stdout.write('\x0D' + prompt + ''.join(proxy_string))
        c = msvcrt.getch()
        if c == b'\r':
            break
        elif c == b'\x08':
            p_s = p_s[:-1]
            proxy_string[len(p_s)] = " "
        else:
            proxy_string[len(p_s)] = "*"
            p_s += c.decode()

    sys.stdout.write('\n')
    return p_s

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X