Naujos password_hash funkcijos nuo PHP 5.5 versijos

2014-10-21

Slaptažodžių kodavimas yra viena "karščiausių" temų programavimo pasaulyje - egzistuoja eilė algoritmų. Jau seniai žinoma apie MD5 nesaugumą, ir daug kas naudoja bcrypt, o nuo PHP 5.5 versijos pasirodė specialios funkcijos, su kuriomis koduoti slaptažodžius tapo visai paprasta.

Kai jums reikia užširfuoti slaptažodį saugojimui duomenų bazėje (pvz kai vartotojas registruojasi), kvieskite funkciją password_hash:

$hash = password_hash($password, PASSWORD_DEFAULT);

Pagal nutylėjimą naudojamas algoritmas bcrypt, tik šiuo atveju jums nereikia rūpintis jokiais papildomais parametrais.

Svarbu žinoti, kad PHP rekomenduoja slaptažodžio lauką daryti pakankamai ilgą, rekomenduojamas 255 simbolių ilgis.

Na, ir aišku, klausimas - kaip po to tikrinti slaptažodį? Labai paprastai: sakykime, kad iš prisijungimo formos gavote el.paštą/vartotoją, pagal jį nuskaitote jo vartotoją iš DB. Tada iš formos gautą slaptažodį $password palyginame su duomenų bazėje esančiu vartotojo slaptažodžiu $hash su funkcija password_verify():

if (password_verify($password, $hash)) {
  echo 'Welcome in!';
}
else {
  echo 'Sorry, wrong credentials';
}

Štai ir viskas, ką reikia prisiminti - dvi funkcijas: password_hash() ir password_verify(). Tiesa, jei naudojate vieną iš populiaresnių PHP frameworkų, tai didelė tikimybė, kad jie savyje turi vidinį vartotojų prisijungimo mechanizmą ir tuo pačiu slaptažodžių šifravimo funkcijas, tokas kaip Laravel funkcija Hash::make(). Tad, kaip sakoma, prieš naudojimą, pasitarkite su gydytoju arba vaistininku dokumentacija.

Šiek tiek daugiau informacijos apie password_hash() funkciją: PHP dokumentacija


(Mailchimp sistema jums atsiųs patvirtinimo laišką, nepamirškite patvirtinti)


Komentarų: 0




Naujausi PHPpamokos.lt online-kursai

23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
Nuo Laravel 4 prie Laravel 5
Povilas Korop

23 EUR (79.41 Lt)
MySQL: nuo pradmenų iki optimizavimo
Povilas Korop
23 EUR (79.41 Lt)
OOP: objektinis programavimas su PHP
Povilas Korop
23 EUR (79.41 Lt)
Kaip kurti Wordpress pluginus?
Arūnas Liuiza

23 EUR (79.41 Lt)
PHP online-kursas pradedantiesiems
Povilas Korop