Krajta

Modul Python getpass

Modul Python getpass
Všichni držíme tajemství, že?? Dokonce i naše programy ano. Důležité na tajemstvích je, že je musíme bezpečně a tajně skrývat před entitami, které by neměly mít přístup k těmto tajným klíčům, heslům nebo heslům, které uživatelům umožní dělat něco, k čemu nemají oprávnění. Stejnou opatrnost je třeba věnovat, když přijímáme tajné klíče, hesla nebo hesla od uživatelů v našich programech, jako je tajný řetězec, který bychom neměli opakovat, když je píšeme na obrazovku. Python getpass modul nám to umožňuje efektivně.

Python getpass modul

Používání Pythonu getpass modulu je možné přijímat hesla v programech Pythonu a udržovat hesla v bezpečí. Uvidíme příklady zabezpečení hesel a také to, jak můžeme streamovat hesla z terminálu do textových souborů. Začněme několika příklady.

Python getpass základní příklad

V tomto příkladu začneme velmi základním příkladem toho, jak můžeme přimět uživatele, aby zadal heslo do terminálu a ujistil se, že se heslo neodráží zpět na příkazový řádek. Tady je stejný program:

import getpass
Snaž se:
heslo = getpass.getpass ()
kromě Výjimky jako např .:
print ('Error Occured:', ex)
jiný:
tisk ('Zadané heslo:', heslo)

S tímto příkazem se vrátíme:

Získejte heslo tajemství

Řetězcové heslo je výchozí výzva, kterou nabízí skript pythonu. V dalším příkladu to bude přizpůsobení něčemu, co bychom rádi použili v našich programech.

Python getpass s vlastní výzvou

V tomto příkladu přizpůsobíme výzvu, která se zobrazí uživateli, když Python požádá o tajnou frázi:

import getpass
pwd = getpass.getpass (prompt = 'Který je nejlepší ostrov Ubuntu navštívit?')
pokud pwd == 'LinuxHint':
print ('Samozřejmě!')
jiný:
print ('Kde to je?')

Podívejme se na výstup tohoto příkazu:

Vlastní výzva k získání hesla

Tento příkaz je užitečný, pokud chcete požádat o několik přístupových frází kromě řetězců hesel.

Streamujte heslo do jiného proudu

The getpass modul nám umožňuje streamovat heslo, které uživatel zadá, do některých dalších streamů, jako je soubor, protokoly nebo cokoli, co lze vlastně reprezentovat jako stream. Musíme jen předat stream samotné funkci:

import getpass
import sys
pwd = getpass.getpass (stream = sys.stderr)
print ('Entered Password:', pwd)

S tímto příkazem se vrátíme:

Streamování hesla do jiných streamů

Získávání hesel bez terminálu

Python getpass modul potřebuje tty, které lze ovládat a termio. To platí, když pracujeme s některými systémy založenými na Unixu. Tímto způsobem lze deaktivovat ozvěnu. Když provedeme následující příklad na počítači, který není Unix:

echo "není tmavé" | python3 getpass_defaults.py

S tímto příkazem se vrátíme:

příkaz termios

Když jsme spustili skript na jiném stroji než Unix, zadali jsme výstupní řetězec. Jinak bychom to prostě viděli ne tmavé Řetězec jako výstup na terminálu.

Přečtěte si více o dálnopisné terminály tady.

Závěr

V této lekci jsme se zaměřili na to, jak můžeme Python využít getpass modul pro efektivní správu tajných přístupových frází v našich programech Python.

Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...