Piton

Python getpass modul

Python getpass modul
Ugye mindannyian titkolózunk? Még a programjaink is. A titkok szempontjából az a fontos, hogy biztonságosan és titokban rejtve tartsuk őket olyan entitások elől, akiknek nem kellene hozzáférniük ezekhez a titkos kulcsokhoz, jelszavakhoz vagy jelszavakhoz, amelyek lehetővé teszik a felhasználók számára, hogy olyasmit tegyenek, amelyre nem jogosultak. Ugyanilyen gondossággal kell eljárni, amikor titkos kulcsokat, jelszavakat vagy jelszavakat fogadunk el programjaink felhasználói részéről, például a titkos karakterláncot nem szabad visszhangozni, amikor a képernyőn gépeljük őket. A Python getpass modul lehetővé teszi számunkra ezt hatékonyan.

Python getpass modul

Python használatával getpass modulban lehetséges a jelszavak elfogadása a Python programokban és a jelszavak biztonságban tartása. Látni fogunk példákat a jelszavak biztonságának megőrzésére, valamint arra, hogy miként továbbíthatjuk a jelszavakat a terminálról szöveges fájlokba. Kezdjük néhány példával.

Python getpass alap példa

Ebben a példában egy nagyon egyszerű példával kezdjük, hogy miként lehet a felhasználót arra késztetni, hogy írja be a jelszót a terminálba, és győződjön meg arról, hogy a jelszó nincs visszhangozva a parancssorba. Itt ugyanaz a program:

import getpass
próbáld ki:
jelszó = getpass.getpass ()
kivéve a kivételt, mint ex:
nyomtatás ('Hiba történt:', ex)
más:
nyomtatás ('Bevitt jelszó:', jelszó)

Íme, amit ezzel a paranccsal kapunk vissza:

Titkos jelszó

A string jelszó az alapértelmezett prompt, amelyet a python szkript ad meg. A következő példában ezt testreszabjuk valamire, amelyet szívesen használunk a programjainkban.

Python getpass egyéni parancssorral

Ebben a példában testreszabjuk azt a parancsot, amely a felhasználó számára megjelenik, amikor a Python titkos kifejezést kér:

import getpass
pwd = getpass.getpass (prompt = 'Melyik a legjobban látogatható Ubuntu-sziget?')
ha pwd == 'LinuxHint':
nyomtatás ('Természetesen!')
más:
print ('Hol van?')

Lássuk a parancs kimenetét:

Egyéni kérés a jelszó megszerzéséhez

Ez a parancs akkor hasznos, ha a jelszó karaktersorozatán kívül néhány jelszót szeretne kérni.

Adja át a jelszót egy másik adatfolyamba

A getpass modul lehetővé teszi számunkra, hogy a felhasználó által beírt jelszót valamilyen más adatfolyamba továbbítsuk, például fájlba, naplókba vagy bármi másba, ami valójában streamként ábrázolható. Csak át kell adnunk az adatfolyamot magának a funkciónak:

import getpass
import sys
pwd = getpass.getpass (folyam = sys.stderr)
nyomtatás ('Bevitt jelszó:', pwd)

Íme, amit ezzel a paranccsal kapunk vissza:

Jelszó továbbítása más adatfolyamokhoz

Jelszavak megszerzése a terminál nélkül

A Python getpass modulnak tty-ra van szüksége, amelyet a terminusok. Ez akkor alkalmazható, ha néhány Unix alapú rendszerrel dolgozunk. Ezzel kikapcsolható a visszhang. Amikor a következő példát hajtjuk végre egy nem Unix gépen:

visszhang "nem sötét" | python3 getpass_defaults.py

Íme, amit ezzel a paranccsal kapunk vissza:

termios parancs

Amikor a szkriptet nem Unix gépen futtattuk, a String kimenetet adtuk meg. Ellenkező esetben egyszerűen láttuk volna nem sötét Karakterlánc, mint kimenet a terminálon.

További információ erről teletype terminálok itt.

Következtetés

Ebben a leckében megvizsgáltuk, hogyan használhatjuk a Python-t getpass modul a titkos jelszavak hatékony kezeléséhez a Python programjainkban.

Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...
Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...