Šifriranje lozinke maskira korisničke lozinke tako da ih je teško pogoditi ili dekodirati. To je bitan korak u razvoju sigurnog softvera za korisničku bazu. Bilo da ga gradite s Flaskom ili drugim laganim Python Frameworkom, ne možete zanemariti taj korak. Tu dolazi bcrypt.

Pokazat ćemo vam kako koristiti bcrypt za hashiranje lozinke u Pythonu.

Kako bcrypt radi

Bcrypt je jezično-agnostička biblioteka za raspršivanje koja nudi jedinstveno šifriranje lozinki. Dok šifrira vaš niz, on generira dodatne nasumične znakove (sol) prema zadanim postavkama kako bi povećao sigurnost vaše lozinke.

Po želji, također možete odrediti broj dodatnih znakova koje želite dodati dolaznom nizu.

Knjižnica Thebcrypt ne čita neobrađene nizove – samo bajt kod. Dakle, za početak, prvo ćete kodirati dolazni niz lozinke prije nego što ga proslijedite u bcrypt za šifriranje.

Kodiranje nije isto što i šifriranje. Osigurava samo da string postane strojno čitljiv prije nego što ga algoritam šifriranja može maskirati.

Šifriranje lozinke u Pythonu pomoću bcrypt

instagram viewer

bcrypt šifriranje lozinke je jednostavno s Pythonom. Usredotočit ćemo se na to kako to učiniti bez korištenja okvira. Ali bez brige, slijedi isti proces u okvirima kada znate kako pohraniti korisničke unose i pročitati ih iz baze podataka.

Instalirajte i postavite bcrypt

Ako to već niste učinili, aktivirati Python virtualno okruženje u korijenu vašeg projekta. Zatim instalirajte bcrypt koristeći pip:

pip install bcrpyt

Počnite šifrirati lozinke

Nakon instalacije, pogledajmo kako šifrirati niz pomoću bcrypt:

# Uvezi bcrypt:
uvoz bcrypt
lozinka = "mypasswordstring"
# Kodirajte lozinku u čitljiv utf-8 bajt kod:
lozinka = lozinka.encode('utf-8')
# Hash ekodiranu lozinku i generiraj sol:
hasshedPassword = bcrypt.hashpw (lozinka, bcrypt.gensalt())
ispis (hashedPassword)

Kada ti pokrenite Python kod iznad, ispisuje šifrirani niz bajtova. Izlaz se, međutim, mijenja svaki put kada izvršite skriptu. Ovako bcrypt osigurava da svaki korisnik ima jedinstveno šifriranu lozinku.

Usput, to je za šifriranje lozinke.

Kako usporediti i potvrditi lozinke s bcryptom

Što ako želite pohraniti raspršenu lozinku i kasnije potvrditi da odgovara korisničkoj zaporki tijekom provjere autentičnosti?

To je lako. Samo trebate usporediti lozinku za provjeru autentičnosti s onom pohranjenom u bazi podataka (ili u memoriji u ovom slučaju).

A budući da bcrypt čita samo nizove bajtova, također ćete morati kodirati lozinku za autentifikaciju prije nego što je usporedite s onom u bazi podataka. U suštini, provjerit ćete šifrirani ulaz za autentifikaciju s kodiranom raspršenom lozinkom koja je već pohranjena u vašoj bazi podataka.

Koristeći lažne Python ulaze, pogledajmo kako ovo funkcionira u praksi:

uvoz bcrypt
#pohrani svoju lozinku:
lozinka = str (input("unos lozinka: "))
# Kodirajte pohranjenu lozinku:
lozinka = lozinka.encode('utf-8')
# Šifrirajte pohranjenu lozinku:
hashirano = bcrypt.hashpw (lozinka, bcrypt.gensalt (10))
# Napravite polje za unos lozinke za provjeru autentičnosti kako biste provjerili je li korisnik unio ispravnu lozinku:
check = str (input("provjeri lozinku: "))
# Kodirajte i lozinku za autentifikaciju:
check = check.encode('utf-8')
# Koristite uvjete za usporedbu lozinke za provjeru autentičnosti sa pohranjenom:
ako bcrypt.checkpw (provjera, raspršena):
print("uspješna prijava")
drugo:
print("netočna lozinka")

Gornji kod traži od vas da unesete novu lozinku kada ga izvršite. Python to pohranjuje u memoriju. Zatim ćete unijeti istu lozinku (poznatu samo vama) u polju za provjeru autentičnosti.

Python ispisuje poruku o uspjehu ako se uspoređena lozinka podudara s prethodno pohranjenom šifriranom. Inače, ispisuje neuspjelu poruku umotanu u drugo izjava:

Cijeli koncept je isti kao pohranjivanje lozinke u bazu podataka tijekom registracije i davanje je kasnije tijekom provjere autentičnosti.

Povećajte šifriranje s bcryptom

Iako smo samo pokazali kako bcrypt radi pohranjivanjem šifriranih lozinki u običnu Python kratku memoriju, njegova je konačna upotreba u stvarnim korisničkim aplikacijama.

Ipak, ovaj vodič pokazuje temeljne načine strukturiranja vašeg koda kako biste to postigli, čak iu stvarnim scenarijima. Na primjer, ako koristite Flask, unose možete zamijeniti zasebnim web obrascima koji će poslužiti polja registracije i provjere autentičnosti. I naravno, pohranit ćete šifrirane lozinke u bazu podataka iz stvarnog života i čitati iz nje kada uspoređujete lozinke.

12 osnovnih uvjeta šifriranja koje bi svi trebali znati do sada

Svi pričaju o enkripciji, ali se osjećate izgubljeni ili zbunjeni? Ovdje su neki ključni pojmovi za šifriranje koje trebate znati.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • Programiranje
  • Piton
  • Programiranje
  • Sigurnost
O autoru
Idowu Omisola (Objavljeno 116 članaka)

Idowu je strastven za sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prelazi na šahovsku ploču kad mu je dosadno, ali voli se s vremena na vrijeme otrgnuti od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.

Više od Idowua Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu