Pytonorm

Python getpass-modul

Python getpass-modul
Vi håller alla hemligheter, eller hur?? Även våra program gör det. Det viktiga med hemligheter är att vi måste hålla dem säkert och i hemlighet dolda för enheter som inte borde ha tillgång till dessa hemliga nycklar, lösenfraser eller lösenord som gör det möjligt för användare att göra något de inte är behöriga att göra. Samma försiktighet måste iakttas när vi accepterar hemliga nycklar, lösenfraser eller lösenord från användare i våra program som att den hemliga strängen inte ska upprepas när vi skriver dem på skärmen. Python getpass kan vi göra detta effektivt.

Python getpass-modul

Använda Python getpass modul är det möjligt att acceptera lösenord i Python-program och hålla lösenfraserna säkra. Vi ser exempel på hur lösenord är säkra och hur vi kan strömma lösenord från terminalen till textfiler. Låt oss komma igång med några exempel.

Python getpass grundläggande exempel

I det här exemplet börjar vi med ett mycket grundläggande exempel på hur vi kan få en användare att ange ett lösenord i terminalen och se till att lösenordet inte återges till kommandotolken. Här är samma program:

importera getpass
Prova:
lösenord = getpass.getpass ()
utom undantag som ex:
skriv ut ('Fel uppstod:', ex)
annan:
skriv ut ('Inmatat lösenord:', lösenord)

Här är vad vi får tillbaka med det här kommandot:

Få lösenordshemlighet

Stränglösenordet är standardprompten som presenteras av python-skriptet. I nästa exempel kommer vi att anpassa det till något vi vill använda i våra program.

Python getpass med anpassad prompt

I det här exemplet kommer vi att anpassa prompten som visas för användaren när Python ber om en hemlig fras:

importera getpass
pwd = getpass.getpass (prompt = 'Vilken är den bästa Ubuntu-ön att besöka?')
om pwd == 'LinuxHint':
tryck ('Naturligtvis!')
annan:
tryck ('Var är det?')

Låt oss se utdata för det här kommandot:

Anpassad uppmaning för att få lösenord

Det här kommandot är användbart när du vill be om några lösenfraser förutom lösenordssträngar.

Strömma lösenord till en annan streaml

De getpass modulen låter oss strömma lösenordet som en användare anger till andra strömmar som en fil, loggar eller något som faktiskt kan representeras som en ström. Vi behöver bara skicka strömmen till själva funktionen:

importera getpass
importera sys
pwd = getpass.getpass (stream = sys.stderr)
skriv ut ('Entered Password:', pwd)

Här är vad vi får tillbaka med det här kommandot:

Strömmande lösenord till andra strömmar

Få lösenord utan Terminal

Python getpass modulen behöver tty som kan styras av en termios. Detta gäller när vi arbetar med vissa Unix-baserade system. Med detta kan ekande inaktiveras. När vi kör följande exempel på en icke-Unix-maskin:

eko "inte mörkt" | python3 getpass_defaults.py

Här är vad vi får tillbaka med det här kommandot:

termios kommando

När vi körde skriptet på en icke-Unix-maskin var utgångssträngen vad vi angav. Annars skulle vi helt enkelt ha sett inte mörkt Sträng som utgång på terminalen.

Läs mer om teletypsterminaler här.

Slutsats

I den här lektionen tittade vi på hur vi kan använda Python getpass modul för att hantera hemliga lösenfraser effektivt i våra Python-program.

Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...
Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...