Python

Python getpass модул

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

Python getpass модул

Използване на Python getpass модул, е възможно да се приемат пароли в програмите на Python и да се пазят паролите в безопасност. Ще видим примери за защита на паролите, както и как можем да предаваме пароли от терминала към текстови файлове. Нека започнем с някои примери.

Основен пример за Python getpass

В този пример ще започнем с много основен пример за това как можем да накараме потребителя да въведе парола в терминала и да се уверим, че паролата не е ехо обратно в командния ред. Ето същата програма:

импортиране getpass
опитвам:
парола = getpass.getpass ()
с изключение на изключение като ex:
print ('Възникна грешка:', преди)
друго:
print ('Въведена парола:', парола)

Ето какво получаваме обратно с тази команда:

Вземете тайна за парола

Низовата парола е подкана по подразбиране, която се представя от скрипта на python. В следващия пример ще го персонализираме към нещо, което бихме искали да използваме в нашите програми.

Python getpass с персонализиран ред

В този пример ще персонализираме подканата, която се показва на потребителя, когато Python поиска секретна фраза:

импортиране getpass
pwd = getpass.getpass (prompt = 'Кой е най-добрият остров на Ubuntu за посещение?')
ако pwd == 'LinuxHint':
print ('Разбира се!')
друго:
print ('Къде е това?')

Нека видим изхода за тази команда:

Персонализиран ред за получаване на парола

Тази команда е полезна, когато искате да поискате някои пароли, освен низовете на паролата.

Предавайте парола към друго поточно предаване

The getpass модул ни позволява да предаваме паролата, която потребителят въвежда, в някои други потоци като файл, дневници или каквото и да е, което всъщност може да бъде представено като поток. Просто трябва да предадем потока на самата функция:

импортиране на getpass
импортиране на sys
pwd = getpass.getpass (stream = sys.stderr)
print ('Въведена парола:', pwd)

Ето какво получаваме обратно с тази команда:

Парола за поточно предаване към други потоци

Получаване на пароли без терминал

Питонът getpass модулът се нуждае от tty, който може да се контролира от a termios. Това е приложимо, когато работим с някои базирани на Unix системи. С това ехото може да бъде деактивирано. Когато изпълним следния пример на не-Unix машина:

ехо "не тъмно" | python3 getpass_defaults.py

Ето какво получаваме обратно с тази команда:

команда termios

Докато изпълнявахме скрипта на машина, която не е Unix, изходният низ беше това, което въведохме. В противен случай просто щяхме да видим не тъмно String като изход на терминала.

Прочетете повече за телетайп терминали тук.

Заключение

В този урок разгледахме как можем да използваме Python getpass модул за ефективно управление на секретни пароли в нашите програми на Python.

Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...
Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...