Logo Logo
Nazaj na seznam
WEB

Kako varno shraniti gesla v PHP: Pozabite na MD5!

21. 03. 2026
Kako varno shraniti gesla v PHP: Pozabite na MD5!

Varnost uporabniških podatkov je na prvem mestu. Najpomembnejše pravilo pri delu z gesli je: Nikoli ne shranjujte gesel v bazo kot navadno besedilo! Če bi nekdo vdrl v vašo bazo, bi videl vsa gesla vaših uporabnikov.

Zakaj ne uporabljati MD5 ali SHA1?

Stari načini, kot sta MD5 ali SHA1, so danes prepočasni in preveč ranljivi. Sodobni računalniki lahko v nekaj sekundah uganejo milijone takšnih gesel s pomočjo "rainbow tabel".

Sodobna rešitev: password_hash()

PHP ponuja vgrajeno funkcijo password_hash(), ki uporablja močan algoritem (privzeto Bcrypt). Ta funkcija avtomatsko poskrbi za t.i. "salt" (soljenje), kar pomeni, da bo rezultat za isto geslo vsakič drugačen.

// Shranjevanje gesla v bazo
$geslo = "mojeVarnoGeslo123";
$hash = password_hash($geslo, PASSWORD_DEFAULT);

// Rezultat bo dolg niz znakov, ki ga shranite v MySQL stolpec (VARCHAR 255)
echo $hash; 

Preverjanje gesla pri vpisu

Ko se uporabnik želi vpisati, ne morete preprosto primerjati dveh gesel. Uporabiti morate funkcijo password_verify().

// Preverjanje ob vpisu
$vpisano_geslo = "mojeVarnoGeslo123";
$hash_iz_baze = "...vsebina_iz_baze...";

if (password_verify($vpisano_geslo, $hash_iz_baze)) {
echo "Geslo je pravilno!";
} else {
echo "Napačno geslo!";
}

Več o password_hash si lahko preberete v moji vadnici na povezavi password_hash.

Hvala za obisk! Dodajam politiko zasebnosti.

© 2024 Vse pravice pridržane.

Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.