Modul Python getpass
Pomocou Pythonu getpass modul, je možné prijímať heslá v programoch Pythonu a udržiavať prístupové frázy v bezpečí. Uvidíme príklady zabezpečenia hesiel a tiež to, ako môžeme streamovať heslá z terminálu do textových súborov. Začnime niekoľkými príkladmi.
Python getpass základný príklad
V tomto príklade začneme úplne základným príkladom toho, ako môžeme dosiahnuť, aby používateľ zadal do terminálu heslo a ubezpečil sa, že heslo nie je opätovne ozvané späť do príkazového riadku. Rovnaký program:
import getpassskúste:
heslo = getpass.getpass ()
okrem Výnimky ako napr .:
print ('Chyba sa vyskytla:', ex)
inak:
tlačiť („Zadané heslo:“, heslo)
S týmto príkazom sa dostaneme späť:
Získajte heslo tajomstvo
Reťazcové heslo je predvolená výzva, ktorá sa zobrazuje v skripte python. V nasledujúcom príklade bude prispôsobenie toho, čo by sme radi použili v našich programoch.
Python getpass s vlastnou výzvou
V tomto príklade prispôsobíme výzvu, ktorá sa zobrazí používateľovi, keď Python požiada o tajnú frázu:
import getpasspwd = getpass.getpass (prompt = 'Ktorý je najlepší ostrov Ubuntu na návštevu?")
if pwd == 'LinuxHint':
tlač („Samozrejme!")
inak:
print („Kde to je?")
Pozrime sa na výstup pre tento príkaz:
Vlastná výzva na získanie hesla
Tento príkaz je užitočný, ak chcete požiadať o niektoré prístupové frázy okrem reťazcov hesiel.
Streamujte heslo do iného streamu
The getpass modul nám umožňuje streamovať heslo, ktoré používateľ zadá, do niektorých ďalších streamov, ako sú napríklad súbory, protokoly alebo čokoľvek, čo sa dá vlastne považovať za stream. Potrebujeme iba odovzdať prúd samotnej funkcii:
import getpassimport sys
pwd = getpass.getpass (stream = sys.stderr)
tlač („Zadané heslo:“, pwd)
S týmto príkazom sa dostaneme späť:
Streamovanie hesla do iných streamov
Získavanie hesiel bez terminálu
Python getpass modul potrebuje tty, ktoré môžu byť ovládané a termio. Toto je použiteľné, keď pracujeme s niektorými systémami založenými na systéme Unix. Pomocou toho je možné deaktivovať ozveny. Keď vykonáme nasledujúci príklad na počítači, ktorý nie je Unix:
ozvena "nie tmavá" | python3 getpass_defaults.pyS týmto príkazom sa dostaneme späť:
príkaz termios
Keď sme spustili skript na stroji, ktorý nie je Unix, výstupný reťazec bol taký, aký sme zadali. Inak by sme jednoducho videli nie tmavé Reťazec ako výstup na termináli.
Prečítajte si viac o terminály teletypu tu.
Záver
V tejto lekcii sme sa pozreli na to, ako môžeme využiť Python getpass modul na efektívne spravovanie tajných prístupových fráz v našich programoch Python.