⊗ppPmAuRHS 424 of 447 menu

Sāls pievienošana reģistrācijā

Tātad, jūs jau zināt, ka hešēšana, izmantojot md5, ir neatgriezenisks process, un uzbrucējs, kas ir iegūtis pieeju hešam, nevarēs iegūt paroli no šī heša.

Patiesībā šis apgalvojums nav pilnīgi pareizs - pašlaik ļaunie uzbrucēji ir izveidojuši populāro un ne pārāk populāro paroļu hešu bibliotēkas, un jebkurš var atšifrēt paroli, vienkārši iekš meklētājprogrammā meklējot tās hešu.

Mēs runājam par pietiekami vienkāršām, populārām parolēm.

Izmēģiniet, piemēram, meklēt hešu 827ccb0eea8a706c4c34a16891f84e7b un uzreiz meklētājprogrammas rezultātos jūs redzēsiet, ka tas ir parole '12345'.

Pietiekami sarežģītu paroļu hešus šādā veidā nevar atšifrēt (izmēģiniet).

Jūs varat jautāt, kāda tad ir problēma - pieņemsim, ka mēs visi reģistrēsimies ar sarežģītām parolēm. Tomēr ir problēma - lielākā daļa lietotāju nedomā par savu datu drošību un var ievadīt pietiekami vienkāršas paroles.

Mēs reģistrācijas laikā varam piespiest izdomāt garenākas paroles, ierobežojot, piemēram, minimālo rakstzīmju skaitu līdz 6 vai 8, tomēr tik un tā parādīsies paroles, piemēram, '123456' vai '12345678'.

Protams, var izdomāt gudrāku algoritmu paroles sarežģītības pārbaudei, bet ir cits risinājums.

Šī risinājuma būtība ir šāda: paroles ir jāsāļ. Sāls - īpaša nejauša virkne, kas reģistrācijas laikā tiks pievienota parolei, un hešs tiks aprēķināts nevis no vienkāršas paroles, bet no virknes sāls+parole, tas ir, no sālītās paroles.

Tas nozīmē, ka reģistrācijas laikā jūs darīsit apmēram šādi:

<?php $salt = '1sJg3hfdf'; // sāls - sarežģīta nejauša virkne $password = md5($salt . $_POST['password']); // pārveido paroli par sālītu hešu ?>

Šajā gadījumā sāls katrai lietotājam būs atšķirīga, tā ir jāģenerē nejauši reģistrācijas brīdī.

Lūk, gatava funkcija, kas to izdarīs:

<?php function generateSalt() { $salt = ''; $saltLength = 8; // sāls garums for($i = 0; $i < $saltLength; $i++) { $salt .= chr(mt_rand(33, 126)); // simbols no ASCII-tabulas } return $salt; } ?>

Izmantojot šo funkciju, mēs varam pārrakstīt mūsu kodu šādi:

<?php $salt = generateSalt(); // sāls $password = md5($salt . $_POST['password']); // sālītā parole ?>

Vēlreiz atkārtošu, ka tās bija izmaiņas reģistrācijas laikā - datu bāzē saglabājam ne tikai paroles hešu, bet sālītās paroles hešu.

Tas vēl nav viss: lietotāju tabulā papildus laukiem login un password ir jāizveido arī lauks salt, kurā mēs glabāsim katra lietotāja sāli.

Implementējiet iepriekš aprakstīto reģistrāciju ar sālītu paroli.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt