Python getpass модул
Използване на Python getpass модул, е възможно да се приемат пароли в програмите на Python и да се пазят паролите в безопасност. Ще видим примери за защита на паролите, както и как можем да предаваме пароли от терминала към текстови файлове. Нека започнем с някои примери.
Основен пример за Python getpass
В този пример ще започнем с много основен пример за това как можем да накараме потребителя да въведе парола в терминала и да се уверим, че паролата не е ехо обратно в командния ред. Ето същата програма:
импортиране getpassопитвам:
парола = getpass.getpass ()
с изключение на изключение като ex:
print ('Възникна грешка:', преди)
друго:
print ('Въведена парола:', парола)
Ето какво получаваме обратно с тази команда:
Вземете тайна за парола
Низовата парола е подкана по подразбиране, която се представя от скрипта на python. В следващия пример ще го персонализираме към нещо, което бихме искали да използваме в нашите програми.
Python getpass с персонализиран ред
В този пример ще персонализираме подканата, която се показва на потребителя, когато Python поиска секретна фраза:
импортиране getpasspwd = 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.