⊗ppPmAuRHS 424 of 447 menu

Shtimi i kripës në regjistrim

Pra, ju tashmë e dini se hash-imi përmes md5 - është një proces i pakthyeshëm dhe hakeri, që i ka hyrë hash-it, nuk do të jetë në gjendje të marrë përmes këtij hash-i fjalëkalimin.

Në fakt kjo deklaratë nuk është plotësisht e saktë - aktualisht hakerët e ligj kanë përpiluar biblioteka hash-esh të fjalëkalimeve popullorë dhe jo dhe çdo budalla mund ta zbulojë fjalëkalimin, thjesht duke e kërkuar hash-in e tij në Google.

Bëhet fjalë për fjalëkalime mjaft të thjeshtë, popullorë.

Kërkoni në Google, për shembull, hash-in 827ccb0eea8a706c4c34a16891f84e7b dhe menjëherë në kërkimin e Google do të shihni se ky është fjalëkalimi '12345'.

Hash-et e fjalëkalimeve mjaft komplekse nuk mund të zbuloen në këtë mënyrë (provoni).

Mund të pyesni, ku është problemi atëherë - le të gjithë ne të regjistrohemi me fjalëkalime komplekse. Megjithatë, ka një problem - shumica e përdoruesve nuk mendojnë për sigurinë e të dhënave të tyre dhe mund të fusin fjalëkalime mjaft të thjeshtë.

Ne gjatë regjistrimit mund t'i detyrojmë të zgjedhin fjalëkalime më të gjatë, duke kufizuar, për shembull, numrin minimal të karaktereve në 6 ose 8, megjithatë, prapë do të shfaqen fjalëkalime si '123456' ose '12345678'.

Mund, sigurisht, të krijohet një algoritëm më i mençur për kontrollin e kompleksitetit të fjalëkalimit, por ka një zgjidhje tjetër.

Thelbi i kësaj zgjidhjeje është: fjalëkalimet duhet të kripen. Kripa - është një varg specifik i rastësishëm, që do të shtohet te fjalëkalimi gjatë regjistrimit dhe hash-i tashmë do të llogaritet jo nga fjalëkalimi i thjeshtë, por nga vargu kripë+fjalëkalim, pra nga fjalëkalimi i kripur.

Pra, gjatë regjistrimit ju do të bëni diçka të tillë:

<?php $salt = '1sJg3hfdf'; // kripa - një varg i rastësishëm kompleks $password = md5($salt . $_POST['password']); // e kthejmë fjalëkalimin në hash të kripur ?>

Në këtë rast kripa do të jetë e ndryshme për çdo përdorues, ajo duhet të gjenerohet në mënyrë të rastësishme në momentin e regjistrimit.

Këtu është një funksion i gatshëm, që do ta bëjë këtë:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // gjatësia e kripës for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // karakter nga ASCII-table } return $salt; } ?>

Me ndihmën e këtij funksioni mund të rishkruhet kodi ynë kështu:

<?php $salt = generateSalt(); // kripa $password = md5($salt . $_POST['password']); // fjalëkalim i kripur ?>

E përsëris edhe një herë, këto ishin ndryshime gjatë regjistrimit - në DB nuk e ruajmë thjesht hash-in e fjalëkalimit, por hash-in e fjalëkalimit të kripur.

Kjo nuk është e gjitha: në tabelën me përdoruesit përveç fushës login dhe password duhet të krijohet edhe fusha salt, në të cilën do të ruajmë kripën e çdo përdoruesi.

Implementoni regjistrimin e përshkruar më sipër me fjalëkalim të kripur.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo