⊗ppPmAuRHS 424 of 447 menu

Sout byvoeging tydens registrasie

Dus, jy weet reeds dat hashing deur md5 'n onomkeerbare proses is en 'n hacker wat toegang tot die hash kry, sal nie daardeur die wagwoord kan verkry nie.

Eintlik is hierdie stelling nie heeltemal waar nie - tans het slegte hackers biblioteke van hashes van gewilde en minder gewilde wagwoorde saamgestel, en enige dwaas kan 'n wagwoord uitvind deur bloot die hash daarvan te gaan soek op Google.

Dit gaan oor redelik eenvoudige, gewilde wagwoorde.

Soek byvoorbeeld die hash 827ccb0eea8a706c4c34a16891f84e7b op Google, en jy sal dadelik in die soekresultate sien dat dit die wagwoord '12345' is.

Hashes van redelik ingewikkelde wagwoorde kan nie so uitgevind word nie (probeer gerus).

Jy mag vra wat die probleem dan is - laat ons almal met ingewikkelde wagwoorde registreer. Daar is eger 'n probleem - die meeste gebruikers dink nie na oor die veiligheid van hul data nie en mag redelik eenvoudige wagwoorde invoer.

Ons kan tydens registrasie hulle dwing om langer wagwoorde te bedink, deur byvoorbeeld die minimum aantal karakters tot 6 of 8 te beperk, maar steeds sal daar wagwoorde soos '123456' of '12345678' voorkom.

Ons kan natuurlik 'n slim algoritme bedink om die wagwoord se kompleksiteit te toets, maar daar is 'n ander oplossing.

Die kern van hierdie oplossing is: wagwoorde moet gesout word. Sout is 'n spesiale ewekansige string wat by die wagwoord gevoeg word tydens registrasie en die hash sal nie bereken word van die gewone wagwoord af nie, maar van die string sout+wagwoord, met ander woorde van die gesoute wagwoord af.

So tydens registrasie sal jy iets soos die volgende doen:

<?php $salt = '1sJg3hfdf'; // sout - 'n ingewikkelde ewekansige string $password = md5($salt . $_POST['password']); // omskep die wagwoord na 'n gesoute hash ?>

Terselfdertyd sal die sout verskillend wees vir elke gebruiker, dit moet ewekansig gegenereer word op die oomblik van registrasie.

Hier is 'n klaargemaakte funksie wat dit sal doen:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // lengte van die sout for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // karakter uit die ASCII-tabel } return $salt; } ?>

Met behulp van hierdie funksie kan ons ons kode soos volg herskryf:

<?php $salt = generateSalt(); // sout $password = md5($salt . $_POST['password']); // gesoute wagwoord ?>

Laat ek dit herhaal: dit was die veranderinge tydens registrasie - in die databasis stoor ons nie net die hash van die wagwoord nie, maar die hash van die gesoute wagwoord.

Dit is nog nie alles nie: in die tabel met gebruikers, benewens die velde login en password, moet ons ook 'n veld salt byvoeg, waarin ons die sout van elke gebruiker sal stoor.

Implementeer die bogenoemde registrasie met 'n gesoute wagwoord.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp