Paroolide krüpteerimine varjab kasutajate paroole, nii et neid on raske ära arvata või dekodeerida. See on oluline samm turvalise kasutajapõhise tarkvara arendamisel. Ükskõik, kas ehitate seda Flaski või mõne muu kerge Pythoni raamistikuga, ei saa te seda sammu ignoreerida. Siin tulebki sisse bcrypt.

Näitame teile, kuidas kasutada Pythonis parooli räsimiseks bcrypti.

Kuidas bcrypt töötab

Bcrypt on keeleagnostiline räsimisteek, mis pakub ainulaadset paroolide krüptimist. Teie stringi krüptimisel genereerib see teie parooli turvalisuse suurendamiseks vaikimisi täiendavaid juhuslikke märke (sool).

Soovi korral saate määrata ka lisamärkide arvu, mida soovite sissetulevale stringile lisada.

Thebcrypti teek ei loe töötlemata stringe – ainult baidikoodi. Alustuseks kodeerite sissetuleva paroolistringi, enne kui edastate selle krüptimiseks krüptimiseks.

Kodeerimine ei ole sama mis krüptimine. See tagab ainult selle, et string muutub masinloetavaks enne, kui krüpteerimisalgoritm suudab seda varjata.

Parooli krüptimine Pythonis koos bcryptiga

bcrypt parooli krüptimine on Pythoniga lihtne. Keskendume sellele, kuidas seda teha ilma raamistikku kasutamata. Kuid ärge muretsege, see järgib raamistikes sama protsessi, kui teate, kuidas oma kasutajate sisendeid salvestada ja neid andmebaasist lugeda.

Installige ja seadistage bcrypt

Kui te pole seda veel teinud, Pythoni virtuaalse keskkonna aktiveerimine oma projekti juurtes. Seejärel installige bcrypt kasutades pip:

pip installi bcrpyt

Alustage paroolide krüptimist

Kui see on installitud, vaatame, kuidas stringi bcrypt abil krüptida:

# Impordi bcrypt:
importida bcrypt
parool = "minu paroolistring"
# Kodeerige parool loetavaks utf-8-baidiseks koodiks:
parool = password.encode('utf-8')
# Räsi kodeeritud parool ja genereerige sool:
hashedPassword = bcrypt.hashpw (parool, bcrypt.gensalt())
print (räsitud parool)

Kui sa käivitage Pythoni kood ülal, prindib see krüptitud baidistringi. Väljund muutub aga iga kord, kui skripti käivitate. Nii tagab bcrypt igale kasutajale kordumatu krüptitud parooli.

See on muide parooli krüptimise jaoks.

Kuidas bcryptiga paroole võrrelda ja kinnitada

Mida teha, kui soovite räsitud parooli salvestada ja hiljem autentimise ajal kinnitada, et see ühtib kasutaja antud parooliga?

See on lihtne. Peate vaid võrdlema autentimisparooli andmebaasis (või antud juhul mällu) salvestatud parooliga.

Ja kuna bcrypt loeb ainult baidistringe, peate enne selle võrdlemist andmebaasis oleva parooliga kodeerima ka autentimisparooli. Sisuliselt kontrollite kodeeritud autentimissisendit juba teie andmebaasis salvestatud kodeeritud räsitud parooliga.

Kasutades näivaid Pythoni sisendeid, vaatame, kuidas see praktikas töötab:

importida bcrypt
#salvestage oma parool:
parool = str (input("sisestage parool: "))
# Kodeerige salvestatud parool:
parool = password.encode('utf-8')
# Krüpteeri salvestatud parool:
hashed = bcrypt.hashpw (parool, bcrypt.gensalt (10))
# Looge autentimisparooli sisestusväli, et kontrollida, kas kasutaja sisestab õige parooli:
check = str (input("kontrolli parooli: "))
# Kodeerige ka autentimisparool:
check = check.encode('utf-8')
# Kasutage tingimusi, et võrrelda autentimisparooli salvestatud parooliga:
kui bcrypt.checkpw (kontroll, räsi):
print ("sisselogimine õnnestus")
muu:
print ("vale parool")

Ülaltoodud kood palub teil selle käivitamisel sisestada uus parool. Python salvestab selle mällu. Seejärel sisestate autentimisväljale sama parooli (teate ainult teile).

Python prindib eduteate, kui võrreldav parool ühtib varem salvestatud krüpteeritud parooliga. Vastasel juhul väljastab see ebaõnnestunud teate, mis on mähitud muidu avaldus:

Kogu kontseptsioon on sama, kui salvestada parool registreerimise ajal andmebaasi ja esitada see hiljem autentimise käigus.

Suurendage krüptimist bcryptiga

Kuigi oleme ainult demonstreerinud, kuidas bcrypt toimib, salvestades krüptitud paroolid tavalisse Pythoni lühimällu, on selle ülim kasutusala reaalses elus kasutatavates kasutajapõhistes rakendustes.

Sellegipoolest näitab see õpetus põhilisi viise, kuidas koodi struktureerida, et seda saavutada, isegi reaalses elus. Näiteks kui kasutate Flaski, saate registreerimis- ja autentimisväljade teenindamiseks sisendid asendada eraldi veebivormidega. Ja loomulikult salvestate krüpteeritud paroolid päriselu andmebaasi ja loete sellest paroolide võrdlemisel.

12 krüptimise põhitingimust, mida kõik peaksid nüüdseks teadma

Kõik räägivad krüptimisest, kuid leiate, et olete eksinud või segaduses? Siin on mõned peamised krüpteerimisterminid, mida peate teadma.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Python
  • Programmeerimine
  • Turvalisus
Autori kohta
Idowu Omisola (116 artiklit avaldatud)

Idowu on kirglik kõige nutika tehnoloogia ja tootlikkuse vastu. Vabal ajal mängib ta ringi kodeerimisega ja lülitub igavlemisel malelauale, kuid armastab ka aeg-ajalt rutiinist lahti murda. Tema kirg näidata inimestele teed kaasaegses tehnikas motiveerib teda rohkem kirjutama.

Veel Idowu Omisolalt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin