Asnjëherë nuk duhet të mbani një fjalëkalim në tekst të thjeshtë ndërsa konfirmoni një përdorues ose bëni diçka të ngjashme.
Meqenëse shumë individë përdorin të njëjtin fjalëkalim, nëse një sulmues zbulon një bazë të dhënash me fjalëkalime të pakriptuara, ato mund të përdoren lehtësisht së bashku me emailet që përputhen për të hyrë në uebsajtin ose llogarinë e lidhur dhe madje mund të përdoren për të provuar të hyjnë në llogari të tjera.
Fjalëkalimet shpesh hashohen sot kur jepet një fjalëkalim. Këshillohet që të hash me kripë dhe të mbash kripën së bashku me fjalëkalimin e hash.
Kriposja mund të duket si një nga hapat në një recetë për hash brown, por në kriptografi, i referohet shtimit të të dhënave të rastësishme në hyrjen e një funksioni hash për të siguruar që hash-i do të sigurojë gjithmonë një rezultat unik edhe nëse hyrjet janë identike.
Si rezultat, hash-i dallues i krijuar nga shtimi i kripës mund të na mbrojë nga disa metoda sulmi, duke përfshirë sulmet në tabela hash, ndërsa mbyt fjalorin dhe përpjekjet jashtë linje me forcë brutale.
Këtu, me ndihmën e copave të kodit, ne do të demonstrojmë se si të përdorim 'bcrypt' për të siguruar fjalëkalimet tuaja.
Pra, çfarë është 'bcrypt'?
Bcrypt është një bibliotekë hashing që mbështet disa gjuhë dhe ofron enkriptim të veçantë të fjalëkalimit. Për të rritur sigurinë e fjalëkalimit tuaj, ai automatikisht prodhon karaktere shtesë të rastësishme (kripë) kur kodon vargun tuaj.
Ju gjithashtu mund të zgjidhni të përcaktoni sa karaktere shtesë dëshironi të shtoni në një varg në hyrje.
Biblioteka bcrypt lexon vetëm kodin e bajtit, jo vargjet e papërpunuara. Prandaj, përpara se të dërgoni një varg fjalëkalimi hyrës në bcrypt për enkriptim, së pari duhet ta kodoni atë.
Kriptimi dhe kodimi nuk janë të njëjtat gjëra. Thjesht sigurohet që një varg të jetë i lexueshëm nga makina përpara se të mbulohet nga një teknikë enkriptimi.
Përdorimi i bcrypt për të enkriptuar një fjalëkalim në Python
Python e bën të thjeshtë enkriptimin e fjalëkalimit bcrypt. Ne do të përqendrohemi ta bëjmë këtë pa ndihmën e një kornize. Por mos u shqetësoni, nëse kuptoni se si të ruani hyrjet e përdoruesit dhe t'i lexoni ato nga baza e të dhënave, procedura është e njëjtë në korniza.
Instalim
Ju duhet vetëm të konfiguroni një mjedis virtual Python dhe më pas të përdorni një IDE si PyCharm. Më pas biblioteka duhet të instalohet së pari:
Kodimi i fjalëkalimit
Le të shohim se si të përdorim bcrypt për të enkriptuar një tekst pasi të jetë instaluar:
Kodi i lartpërmendur Python ekzekuton dhe nxjerr një varg bajt të koduar. Por sa herë që ekzekutoni skenarin, rezultati është i ndryshëm. Bcrypt përdor këtë metodë për t'u siguruar që çdo përdorues të ketë një fjalëkalim që është i koduar në mënyrë specifike.
Kjo, që ra fjala, është për enkriptimin e fjalëkalimit.
Krahasimi dhe konfirmimi i fjalëkalimit duke përdorur Bcrypt
Çfarë ndodh nëse dëshironi të ruani fjalëkalimin e hash dhe të kontrolloni më vonë për të parë nëse ai përputhet me fjalëkalimin që një përdorues ka paraqitur për vërtetim?
Kjo është e thjeshtë. Vetëm fjalëkalimi autentikues duhet të krahasohet me hyrjen e bazës së të dhënave (ose në memorie në këtë rast).
Fjalëkalimi autentikues duhet gjithashtu të kodohet përpara se të krahasohet me atë në bazën e të dhënave, sepse bcrypt mund të lexojë vetëm vargjet e bajtit. Në thelb, ju do të krahasoni një hyrje të vërtetimit të koduar me fjalëkalimin e koduar të hash që keni aktualisht në bazën e të dhënave tuaja.
Le ta testojmë këtë duke përdorur hyrje fiktive të Python:
Pas ekzekutimit të kodit të lartpërmendur, ju kërkohet një fjalëkalim i ri. Kjo është ruajtur në memorie nga Python. Në seksionin e vërtetimit, më pas do të futni të njëjtin fjalëkalim, i cili është privat për ju.
Nëse fjalëkalimi krahasohet dhe ai që është koduar më parë dhe ka ruajtur ndeshjen, Python lëshon një mesazh suksesi.
Nëse jo, mesazhi i gabimit shtypet dhe më pas shtohet fjalia tjetër.
Ideja themelore është identike me atë të regjistrimit dhe më pas furnizimit të një fjalëkalimi në një bazë të dhënash për vërtetim.
Përfundim
Edhe pse ne kemi përdorur thjesht fjalëkalime të koduara për të treguar se si funksionon bcrypt në memorien e thjeshtë të shkurtër Python, zbatueshmëria e tij aktuale qëndron në aplikacionet e bazës së përdoruesit.
Sidoqoftë, ky artikull demonstron metodat thelbësore për të organizuar kodin tuaj për ta arritur këtë, edhe në rrethana të botës reale.
Për shembull, nëse jeni duke përdorur Flask, ju mund të siguroni fushat e regjistrimit dhe të vërtetimit nëpërmjet formularëve të veçantë të internetit në vend të hyrjeve.
Sigurisht, ndërsa krahasoni fjalëkalimet, do të lexoni nga një bazë të dhënash që përmban fjalëkalime të koduara që mbahen në botën reale.
Jona Nitsch
Faleminderit për këtë shpjegim të thjeshtë dhe të thjeshtë,
Kjo më ndihmoi shumë në projektin tim aktual.
Unë mendoj se është shumë mirë që kodi i shembullit është i kufizuar në minimumin e thjeshtë dhe jo i mbingarkuar si shumë shpjegime të tjera.
Të fala