Получение ввода пароля командной строки в Python

Вы знаете, как в Linux, когда вы пытаетесь использовать материал Sudo, он говорит вам ввести пароль и, по мере ввода, ничего не отображается в окне терминала (пароль не отображается)?

Есть ли способ сделать это в Python? Я работаю над script, который требует такой конфиденциальной информации и хотел бы, чтобы он был скрыт, когда я его печатаю.

Другими словами, я хочу получить пароль от пользователя без указания пароля.

Ответ 1

Используйте getpass.getpass():

from getpass import getpass
password = getpass()

Необязательный запрос может быть передан в качестве параметра; по умолчанию установлено значение "Password: ".

Обратите внимание, что для этой функции требуется соответствующий терминал, поэтому она может отключить эхо-символы напечатанных символов - для получения дополнительной информации см. "GetPassWarning: не удается управлять эхо-сигналом на терминале" при запуске из IDLE.

Ответ 2

import getpass

pswd = getpass.getpass('Password:')

getpass работает в Linux, Windows и Mac.

Ответ 3

Используйте getpass для этой цели.

getpass.getpass - запрашивать пароль для пользователя без эха

Ответ 4

Этот код будет печатать звездочку вместо каждой буквы.

import sys
import msvcrt

passwor = ''
while True:
    x = msvcrt.getch()
    if x == '\r':
        break
    sys.stdout.write('*')
    passwor +=x

print '\n'+passwor

Ответ 5

Используйте это, чтобы повторно запросить пароль, если вставленный проход не является мировым hello :

import getpass

password = getpass.getpass('Insert your password:')

while password != 'hello':
   print('... Sorry.. Wrong pass')
   password = getpass.getpass('Insert your password again:')

Ответ 6

15.7. getpass - Портативный ввод пароля

#!/usr/bin/python3
from getpass import getpass
passwd = getpass("password: ")
print(passwd)

Вы можете прочитать больше здесь

Ответ 7

import getpass
p = str("null")  # user input start value
pas = str("password")  # password value
while p != pas:
    p = getpass.getpass("Insert your password: ")  # password input
print("ay")  # when you get the password, the output is "ay"