Python

Modul Python getpass

Modul Python getpass
Všetci strážime tajomstvá, však? Dokonca aj naše programy áno. Dôležité na tajomstvách je, že ich musíme bezpečne a tajne skrývať pred entitami, ktoré by nemali mať prístup k týmto tajným kľúčom, heslám alebo heslám, ktoré používateľom umožnia robiť niečo, na čo nemajú oprávnenie. Rovnaká opatrnosť je potrebná pri prijímaní tajných kľúčov, prístupových fráz alebo hesiel od používateľov v našich programoch, ako je napríklad tajný reťazec, ktorý by sa nemal opakovať, keď ich píšeme na obrazovku. Python getpass modul nám to umožňuje efektívne.

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 getpass
skú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 getpass
pwd = 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 getpass
import 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.py

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

Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...