Python

Python getpass modul

Python getpass modul
Vsi skrivamo skrivnosti, kajne? Tudi naši programi to počnejo. Pomembno pri skrivnostih je, da jih moramo varno in na skrivaj skriti pred subjekti, ki ne bi smeli imeti dostopa do teh tajnih ključev, geslov ali gesla, ki uporabnikom omogočajo, da naredijo nekaj, za kar niso pooblaščeni. Enako je treba paziti, ko sprejmemo tajne ključe, gesla ali gesla od uporabnikov v naših programih, kot je skrivni niz, ne smemo odmevati, ko jih vtipkamo na zaslon. Python getpass modul nam omogoča, da to storimo učinkovito.

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 getpass
poskusite:
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 getpass
pwd = 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 getpass
uvoz 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.py

Tukaj 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.

Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...
Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...