A jelszótitkosítás elfedi a felhasználók jelszavait, így nehéz kitalálni vagy dekódolni. Ez elengedhetetlen lépés a biztonságos felhasználói bázisú szoftverek fejlesztésében. Függetlenül attól, hogy Flask vagy egy másik könnyű Python-keretrendszerrel épít egyet, ezt a lépést nem hagyhatja figyelmen kívül. Itt jön be a bcrypt.

Megmutatjuk, hogyan lehet a bcrypt segítségével kivonatolni jelszavát Pythonban.

Hogyan működik a bcrypt

A Bcrypt egy nyelv-agnosztikus hash-könyvtár, amely egyedi jelszótitkosítást kínál. A karakterlánc titkosítása közben alapértelmezés szerint extra véletlenszerű karaktereket (sót) generál, hogy megerősítse jelszava biztonságát.

Opcionálisan megadhatja a bejövő karakterlánchoz hozzáadni kívánt extra karakterek számát is.

A Thebcrypt könyvtár nem olvas nyers karakterláncokat – csak a bájtos kódot. Tehát először kódolni kell egy bejövő jelszó karakterláncot, mielőtt átadná a titkosításhoz a titkosításhoz.

A kódolás nem ugyanaz, mint a titkosítás. Csak azt biztosítja, hogy egy karakterlánc gépi olvashatóvá váljon, mielőtt egy titkosítási algoritmus elfedhetné.

instagram viewer

Jelszó titkosítása Pythonban a bcrypt segítségével

bcrypt A Python segítségével a jelszó titkosítása egyszerű. Arra fogunk összpontosítani, hogyan lehet ezt keretrendszer használata nélkül megtenni. De ne aggódj, ugyanazt a folyamatot követi a keretrendszerekben, ha már tudod, hogyan kell tárolni a felhasználói bemeneteket, és kiolvasni az adatbázisból.

A bcrypt telepítése és beállítása

Ha még nem tetted meg, aktiváljon egy Python virtuális környezetet a projektgyökérben. Ezután telepítse a bcrypt segítségével csipog:

pip telepítése bcrpyt

Kezdje el a jelszavak titkosítását

A telepítés után nézzük meg, hogyan lehet titkosítani egy karakterláncot a bcrypt használatával:

# Bcrypt importálása:
bcrypt importálása
jelszó = "mypasswordstring"
# Kódolja a jelszót olvasható utf-8 bájtos kódba:
jelszó = jelszó.encode('utf-8')
# Kivonatolja a kódolt jelszót, és generáljon egy sót:
hashedPassword = bcrypt.hashpw (jelszó, bcrypt.gensalt())
nyomtatás (kivonatolt jelszó)

Amikor te futtassa a Python kódot fent, egy titkosított bájtkarakterláncot nyomtat. A kimenet azonban minden alkalommal változik, amikor végrehajtja a szkriptet. A bcrypt így biztosítja, hogy minden felhasználó egyedileg titkosított jelszóval rendelkezzen.

Ez egyébként a jelszó titkosítására vonatkozik.

A jelszavak összehasonlítása és megerősítése a bcrypt segítségével

Mi a teendő, ha el szeretné tárolni a kivonatolt jelszót, és később ellenőrizni szeretné, hogy az egyezik-e a felhasználó által megadott jelszóval a hitelesítés során?

Ez könnyű. Csak össze kell hasonlítani a hitelesítő jelszót az adatbázisban (vagy ebben az esetben a memóriában) tárolt jelszóval.

És mivel a bcrypt csak a bájtkarakterláncokat olvassa, a hitelesítési jelszót is kódolnia kell, mielőtt összehasonlítaná az adatbázisban lévővel. Lényegében egy kódolt hitelesítési bemenetet kell keresztezni az adatbázisban már tárolt kódolt kivonatolt jelszóval.

Dummy Python bemenetekkel nézzük meg, hogyan működik ez a gyakorlatban:

bcrypt importálása
#tárolja el jelszavát:
jelszó = str (input("beviteli jelszó: "))
# Kódolja a tárolt jelszót:
jelszó = jelszó.encode('utf-8')
# A tárolt jelszó titkosítása:
hashed = bcrypt.hashpw (jelszó, bcrypt.gensalt (10))
# Hozzon létre egy hitelesítő jelszó beviteli mezőt, hogy ellenőrizze, hogy a felhasználó helyes jelszót adott-e be:
check = str (input("jelszó ellenőrzése: "))
# Kódolja a hitelesítő jelszót is:
check = check.encode('utf-8')
# Használjon feltételeket a hitelesítő jelszó és a tárolt jelszó összehasonlításához:
if bcrypt.checkpw (ellenőrzés, kivonat):
print ("sikeres bejelentkezés")
más:
print ("hibás jelszó")

A fenti kód új jelszó megadását kéri, amikor végrehajtja. A Python ezt a memóriában tárolja. Ezután ugyanazt a jelszót kell megadnia (csak Ön tudja) a hitelesítési mezőben.

A Python sikerüzenetet nyomtat, ha az összehasonlított jelszó megegyezik a korábban tárolt titkosított jelszóval. Ellenkező esetben a sikertelen üzenetet adja ki a más nyilatkozat:

Az egész koncepció ugyanaz, mint amikor a regisztráció során adatbázisban tárolunk egy jelszót, majd a hitelesítés során később megadjuk.

Scale Up Encryption Bcrypt segítségével

Bár a bcrypt működését csak a titkosított jelszavak sima Python rövid memóriájában való tárolásával mutattuk be, végső felhasználása a valós felhasználói bázis alkalmazásokban van.

Mindazonáltal ez az oktatóanyag bemutatja a kód strukturálásának alapvető módjait ennek eléréséhez, még valós forgatókönyvekben is. Ha például a Flaskot használja, a bemeneteket külön webes űrlapokra cserélheti a regisztrációs és hitelesítési mezők kiszolgálásához. És természetesen a titkosított jelszavakat egy valós adatbázisban tárolja, és abból olvassa el a jelszavak összehasonlításakor.

12 alapvető titkosítási feltétel, amelyet már mindenkinek tudnia kell

Mindenki a titkosításról beszél, de elveszett vagy összezavarodott? Íme néhány kulcsfontosságú titkosítási kifejezés, amelyet tudnia kell.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Programozás
  • Piton
  • Programozás
  • Biztonság
A szerzőről
Idowu Omisola (116 cikk megjelent)

Idowu szenvedélyesen rajong minden intelligens technológiáért és a termelékenységért. Szabadidejében kódolással játszik, és ha unatkozik sakktáblára vált, de a rutinból is szeret időnként kiszakadni. Szenvedélye, hogy megmutassa az embereknek a modern technológiát, arra sarkallja, hogy többet írjon.

Továbbiak Idowu Omisola-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez