Python

Модуль Python getpass

Модуль Python getpass
Мы все храним секреты, не так ли?? Даже наши программы. Важная вещь о секретах заключается в том, что мы должны хранить их надежно и тайно скрытыми от лиц, которые не должны иметь доступа к этим секретным ключам, парольным фразам или паролям, которые позволят пользователям делать то, что они не уполномочены делать. Такую же осторожность необходимо проявлять, когда мы принимаем секретные ключи, парольные фразы или пароли от пользователей в наших программах, например, секретная строка не должна отображаться эхом, когда мы вводим их на экране. Питон Getpass модуль позволяет нам делать это эффективно.

Модуль Python getpass

Использование Python Getpass модуль, можно принимать пароли в программах Python и сохранять парольные фразы в безопасности. Мы увидим примеры безопасного хранения паролей, а также то, как мы можем передавать пароли из терминала в текстовые файлы. Начнем с нескольких примеров.

Базовый пример Python getpass

В этом примере мы начнем с очень простого примера того, как мы можем заставить пользователя ввести пароль в терминале и убедиться, что пароль не отображается эхом обратно в командную строку. Вот такая же программа:

импортировать getpass
пытаться:
пароль = getpass.getpass ()
кроме Exception as ex:
print ('Произошла ошибка:', например)
еще:
print ('Введенный пароль:', пароль)

Вот что мы получаем с помощью этой команды:

Получить секретный пароль

Строковый пароль - это приглашение по умолчанию, которое предоставляется скриптом python. В следующем примере мы настроим это на то, что мы захотим использовать в наших программах.

Python getpass с настраиваемой подсказкой

В этом примере мы настроим приглашение, которое отображается пользователю, когда Python запрашивает секретную фразу:

импорт getpass
pwd = getpass.getpass (prompt = 'Какой остров Ubuntu лучше всего посетить?')
если pwd == 'LinuxHint':
print ('Конечно!')
еще:
print ('Где это?')

Посмотрим, что выводит эта команда:

Настраиваемая подсказка для получения пароля

Эта команда полезна, когда вы хотите запросить парольные фразы помимо строк пароля.

Передать пароль другому потоку

В Getpass модуль позволяет нам передавать пароль, который пользователь вводит, в некоторые другие потоки, такие как файл, журналы или что-то еще, что может быть представлено как поток на самом деле. Нам просто нужно передать поток самой функции:

импортировать getpass
import sys
pwd = getpass.getpass (поток = sys.stderr)
print ('Введенный пароль:', pwd)

Вот что мы получаем с помощью этой команды:

Передача пароля в другие потоки

Получение паролей без Терминала

Питон Getpass модулю требуется tty, которым можно управлять с помощью Термиос. Это применимо, когда мы работаем с некоторыми системами на основе Unix. Этим можно отключить эхо. Когда мы выполняем следующий пример на машине, отличной от Unix:

эхо "не темно" | python3 getpass_defaults.ру

Вот что мы получаем с помощью этой команды:

команда termios

Поскольку мы запускали сценарий на машине, отличной от Unix, выходная строка была тем, что мы ввели. В противном случае мы бы просто увидели не темно Строка как вывод на терминал.

Узнать больше о телетайп терминалы здесь.

Заключение

В этом уроке мы рассмотрели, как можно использовать Python Getpass модуль для эффективного управления секретными парольными фразами в наших программах на Python.

Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...
Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...