Модуль Python getpass
Использование Python Getpass модуль, можно принимать пароли в программах Python и сохранять парольные фразы в безопасности. Мы увидим примеры безопасного хранения паролей, а также то, как мы можем передавать пароли из терминала в текстовые файлы. Начнем с нескольких примеров.
Базовый пример Python getpass
В этом примере мы начнем с очень простого примера того, как мы можем заставить пользователя ввести пароль в терминале и убедиться, что пароль не отображается эхом обратно в командную строку. Вот такая же программа:
импортировать getpassпытаться:
пароль = getpass.getpass ()
кроме Exception as ex:
print ('Произошла ошибка:', например)
еще:
print ('Введенный пароль:', пароль)
Вот что мы получаем с помощью этой команды:
Получить секретный пароль
Строковый пароль - это приглашение по умолчанию, которое предоставляется скриптом python. В следующем примере мы настроим это на то, что мы захотим использовать в наших программах.
Python getpass с настраиваемой подсказкой
В этом примере мы настроим приглашение, которое отображается пользователю, когда Python запрашивает секретную фразу:
импорт getpasspwd = getpass.getpass (prompt = 'Какой остров Ubuntu лучше всего посетить?')
если pwd == 'LinuxHint':
print ('Конечно!')
еще:
print ('Где это?')
Посмотрим, что выводит эта команда:
Настраиваемая подсказка для получения пароля
Эта команда полезна, когда вы хотите запросить парольные фразы помимо строк пароля.
Передать пароль другому потоку
В Getpass модуль позволяет нам передавать пароль, который пользователь вводит, в некоторые другие потоки, такие как файл, журналы или что-то еще, что может быть представлено как поток на самом деле. Нам просто нужно передать поток самой функции:
импортировать getpassimport sys
pwd = getpass.getpass (поток = sys.stderr)
print ('Введенный пароль:', pwd)
Вот что мы получаем с помощью этой команды:
Передача пароля в другие потоки
Получение паролей без Терминала
Питон Getpass модулю требуется tty, которым можно управлять с помощью Термиос. Это применимо, когда мы работаем с некоторыми системами на основе Unix. Этим можно отключить эхо. Когда мы выполняем следующий пример на машине, отличной от Unix:
эхо "не темно" | python3 getpass_defaults.руВот что мы получаем с помощью этой команды:
команда termios
Поскольку мы запускали сценарий на машине, отличной от Unix, выходная строка была тем, что мы ввели. В противном случае мы бы просто увидели не темно Строка как вывод на терминал.
Узнать больше о телетайп терминалы здесь.
Заключение
В этом уроке мы рассмотрели, как можно использовать Python Getpass модуль для эффективного управления секретными парольными фразами в наших программах на Python.