Piton

Python getpass modul

Python getpass modul
Svi čuvamo tajne, zar ne? Čak i naši programi to rade. Važno kod tajni je da ih moramo čuvati sigurno i u tajnosti skrivenih od subjekata koji ne bi trebali imati pristup tim tajnim ključevima, pristupnim frazama ili lozinci što će korisnicima omogućiti da rade nešto za što nisu ovlašteni. Isti se oprez mora primijeniti kada prihvaćamo tajne ključeve, fraze za pristup ili lozinku od korisnika u našim programima, poput tajnog niza, ne smije se ponavljati kad ih tipkamo na ekranu. Python getpass modul omogućuje nam to učinkovito.

Python getpass modul

Korištenje Pythona getpass modul, moguće je prihvatiti lozinke u programima Python i zaštititi lozinke. Vidjet ćemo primjere zaštite lozinki, kao i kako možemo prenijeti lozinke s terminala u tekstualne datoteke. Krenimo s nekoliko primjera.

Osnovni primjer Pythona getpass

U ovom ćemo primjeru započeti s vrlo osnovnim primjerom kako možemo natjerati korisnika da unese lozinku u terminal i pobrinemo se da lozinka ne bude odjeknuta natrag u naredbeni redak. Evo istog programa:

uvoz getpass
probati:
lozinka = getpass.getpass ()
osim iznimke kao npr:
print ('Došlo je do pogreške:', ex)
drugo:
print ('Unesena lozinka:', lozinka)

Evo što vraćamo ovom naredbom:

Dobiti tajnu lozinku

Lozinka niza je zadani upit koji je predstavljen python skriptom. U sljedećem primjeru to ćemo prilagoditi nečemu što bismo željeli koristiti u našim programima.

Python getpass s prilagođenim odzivnikom

U ovom ćemo primjeru prilagoditi upit koji se prikazuje korisniku kada Python zatraži tajnu frazu:

uvoz getpass
pwd = getpass.getpass (prompt = 'Koji je najbolji otok Ubuntu posjetiti?')
ako je pwd == 'LinuxHint':
print ('Naravno!')
drugo:
print ('Gdje je to?')

Pogledajmo izlaz za ovu naredbu:

Prilagođeni upit za dobivanje lozinke

Ova je naredba korisna kada želite tražiti neke lozinke, osim nizova lozinki.

Stream lozinku na drugi tok

The getpass modul omogućuje nam strujanje lozinke koju korisnik unosi u neke druge tokove poput datoteke, dnevnika ili bilo čega što se zapravo može prikazati kao tok. Samo trebamo proslijediti tok samoj funkciji:

uvoz getpass
import sys
pwd = getpass.getpass (stream = sys.stderr)
print ('Unesena lozinka:', pwd)

Evo što vraćamo ovom naredbom:

Streaming lozinke za druge tokove

Dobivanje lozinki bez terminala

Python getpass modul treba tty kojim može upravljati a termios. To je primjenjivo kada radimo s nekim Unix sustavima. Ovim se odjek može onemogućiti. Kad izvršimo sljedeći primjer na stroju koji nije Unix:

odjek "nije mračno" | python3 getpass_defaults.py

Evo što vraćamo ovom naredbom:

naredba termios

Dok smo skriptu izvodili na uređaju koji nije Unix, izlazni je niz bio ono što smo unijeli. Inače bismo jednostavno vidjeli nije mračno Niz kao izlaz na terminalu.

Pročitajte više o teletaip terminali ovdje.

Zaključak

U ovoj smo lekciji pogledali kako možemo iskoristiti Python getpass modul za učinkovito upravljanje tajnim lozinkama u našim programima Python.

Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...