Python getpass modul
Uporaba Pythona getpass modul, je mogoče sprejeti gesla v programih Python in varovati gesla. Videli bomo primere varovanja gesel in tudi kako lahko gesla pretakate iz terminala v besedilne datoteke. Začnimo z nekaj primeri.
Osnovni primer Python getpass
V tem primeru bomo začeli z zelo osnovnim primerom, kako lahko uporabnika vnesemo geslo v terminal in se prepričamo, da geslo ni odmevalo nazaj v ukazni poziv. Tu je isti program:
uvozi getpassposkusite:
geslo = getpass.getpass ()
razen izjeme kot ex:
print ('Napaka:', ex)
sicer:
print ('Vneseno geslo:', geslo)
Tukaj dobimo s tem ukazom:
Pridobite skrivno geslo
Geslo niza je privzeti poziv, ki ga predstavi skript python. V naslednjem primeru bomo to prilagodili nečemu, kar bi radi uporabili v naših programih.
Python getpass s pozivom po meri
V tem primeru bomo prilagodili poziv, ki se prikaže uporabniku, ko Python zahteva skrivno besedno zvezo:
uvozi getpasspwd = getpass.getpass (prompt = 'Kateri otok Ubuntu je najbolje obiskati?')
če je pwd == 'LinuxHint':
print ('Seveda!')
sicer:
print ('Kje je to?')
Poglejmo izhod za ta ukaz:
Poziv po meri za pridobitev gesla
Ta ukaz je uporaben, če želite poleg nizov gesel zahtevati še nekatere gesle.
Pretaknite geslo na drugo strujo
The getpass modul nam omogoča pretakanje gesla, ki ga uporabnik vnese, v druge tokove, kot so datoteka, dnevniki ali karkoli, kar lahko dejansko predstavimo kot tok. Preprosto moramo predati tok sami funkciji:
uvozi getpassuvoz sys
pwd = getpass.getpass (tok = sys.stderr)
print ('Vneseno geslo:', pwd)
Tukaj dobimo s tem ukazom:
Pretakanje gesla v druge tokove
Pridobivanje gesel brez terminala
Python getpass modul potrebuje tty, ki ga lahko nadzoruje a termios. To velja, kadar delamo z nekaterimi sistemi, ki temeljijo na Unixu. S tem je lahko odmev onemogočen. Ko izvedemo naslednji primer na računalniku, ki ni Unix:
odmev "ni temen" | python3 getpass_defaults.pyTukaj dobimo s tem ukazom:
ukaz termios
Ko smo skript izvajali na stroju, ki ni Unix, je bil vneseni izhodni niz. V nasprotnem primeru bi preprosto videli ne temno Niz kot izhod na terminalu.
Preberite več o teletipski terminali tukaj.
Zaključek
V tej lekciji smo preučili, kako lahko uporabimo Python getpass modul za učinkovito upravljanje skrivnih gesel v naših programih Python.