Inoiz ez duzu pasahitz bat testu arruntean gorde behar erabiltzaile bat berresten duzun bitartean edo antzeko zerbait egiten duzun bitartean.
Pertsona askok pasahitz bera erabiltzen dutenez, erasotzaile batek zifratu gabeko pasahitzen datu-base bat aurkitzen badu, erraz erabil daitezke bat datozen mezu elektronikoekin batera estekatutako webgunean edo kontuan sartzeko eta baita beste kontu batzuetan sartzen saiatzeko ere.
Pasahitzak askotan hash egiten dira gaur pasahitz bat ematen denean. Gomendatzen da gatzarekin hatxatzea eta gatza hazkatutako pasahitzarekin batera mantentzea.
Gatzatzea hash browns-en errezeta bateko urratsetako bat dirudi, baina kriptografian, hash funtzioaren sarrerari ausazko datuak gehitzeari egiten dio erreferentzia, hashak emaitza bakarra emango duela ziurtatzeko, nahiz eta sarrerak berdinak izan.
Ondorioz, gatza gehituz sortutako hash bereizgarriak hainbat eraso-metodotatik defenda gaitzake, hash-taulen erasoak barne, hiztegia eta indar gordina lineaz kanpoko saiakerak itotzen dituen bitartean.
Hemen, kode zatien laguntzaz, zure pasahitzak ziurtatzeko 'bcrypt' nola erabili erakutsiko dugu.
Beraz, zer da 'bcrypt'?
Bcrypt hashing liburutegi bat da, hainbat hizkuntza onartzen dituena eta pasahitz enkriptazio berezia eskaintzen duena. Zure pasahitzaren segurtasuna areagotzeko, automatikoki ausazko karaktere gehigarriak (gatza) sortzen ditu zure katea enkriptatzean.
Sarrerako kate bati zenbat karaktere gehigarri gehitu nahi dituzun definitzea ere aukera dezakezu.
bcrypt liburutegiak byte-kodea bakarrik irakurtzen du, ez kate gordinak. Hori dela eta, sarrerako pasahitz katea bcrypt-era bidali aurretik enkriptatzeko, lehenik kodetu behar duzu.
Zifratzea eta kodetzea ez dira gauza bera. Kate bat makinaz irakur daitekeela ziurtatzen du zifratze-teknika batek estali aurretik.
bcrypt erabiltzea Python-en pasahitz bat enkriptatzeko
Python-ek bcrypt pasahitzaren enkriptatzea errazten du. Marko baten laguntzarik gabe hau egiten kontzentratuko gara. Baina ez kezkatu, erabiltzaileen sarrerak nola gorde eta datu-basetik irakurtzen ulertzen baduzu, prozedura berdina da esparruetan.
instalazioa
Python ingurune birtual bat konfiguratu eta gero PyCharm bezalako IDE bat erabili behar duzu. Liburutegia instalatu behar da lehenik:
Pasahitza enkriptatzea
Ikus dezagun nola erabili bcrypt testu bat enkriptatzeko instalatu ondoren:
Aipatutako Python kodeak enkriptatutako byte kate bat exekutatu eta ateratzen du. Baina gidoia exekutatzen duzun bakoitzean, emaitza ezberdina da. Bcrypt-ek metodo hau erabiltzen du erabiltzaile bakoitzak berariaz enkriptatutako pasahitza duela ziurtatzeko.
Hori, bidenabar, pasahitza enkriptatzeko da.
Pasahitzen konparaketa eta berrespena Bcrypt erabiliz
Zer gertatzen da hash-eko pasahitza gorde eta geroago egiaztatu nahi baduzu erabiltzaile batek autentifikaziorako bidali duen pasahitzarekin bat datorren ala ez?
Hori sinplea da. Pasahitz autentifikatzailea soilik alderatu behar da datu-basearen sarrerarekin (edo memorian kasu honetan).
Autentifikatzeko pasahitza ere kodetu behar da datu-basekoarekin alderatu aurretik, bcrypt-ek byte kateak soilik irakur ditzakeelako. Funtsean, kodetutako autentifikazio-sarrera bat zure datu-basean duzun hash kodetutako pasahitzarekin alderatuko duzu.
Proba dezagun hau Python-en fikziozko sarrerak erabiliz:
Aipatutako kodea exekutatzean, pasahitz berri bat eskatuko zaizu. Python-ek memorian gordetzen du. Autentifikazio atalean, pasahitz bera sartuko duzu, zuretzako pribatua dena.
Pasahitza eta aurrez enkriptatu eta bat-etortzea gorde zenarekin alderatzen bada, Python-ek arrakasta-mezu bat igortzen du.
Hala ez bada, errore-mezua inprimatzen da eta, ondoren, beste esaldia gehitzen da.
Oinarrizko ideia erregistratu eta gero autentifikaziorako datu-base bati pasahitza ematearen berdina da.
Ondorioa
Nahiz eta enkriptatutako pasahitzak erabili bcrypt Python memoria laburrean nola funtzionatzen duen erakusteko, bere benetako aplikagarritasuna erabiltzaile-oinarrizko aplikazioetan dago.
Hala ere, artikulu honek zure kodea antolatzeko ezinbesteko metodoak erakusten ditu hori lortzeko, baita mundu errealeko egoeratan ere.
Adibidez, Flask erabiltzen ari bazara, erregistro eta autentifikazio eremuak web inprimaki bereizien bidez eman ditzakezu sarreraren ordez.
Jakina, pasahitzak alderatzen dituzun bitartean, mundu errealean gordetzen diren pasahitzak enkriptatutako datu-base batetik irakurriko duzu.
Jona Nitsch
Eskerrik asko azalpen erraz eta erraz honengatik,
Horrek asko lagundu dit nire oraingo proiektuan.
Oso ona iruditzen zait adibide-kodea gutxienera mugatzea eta ez gainkargatzea beste hainbat azalpen bezala.
Best regards