Autor Zpráva
Kubo2
Profil
Napr. Takhkhle?
<?php
$heslo = sha1(md5(sha1($_POST['heslo'])));
Je to blbost používat?

Moderátor Chamurappi: Před otazníkem se nedělá mezera.
Chamurappi
Profil
Reaguji na Kuba2:
To se blíží hashovacímu algoritmu L007 :-)

Je to blbost používat?
Nebylo by lepší nad těmito otázkami přemýšlet až poté, co pochopíš, co vlastně hash je? Pak by ses ani nemusel ptát.
peta
Profil
Kubo2:
sha1 a md5 slouzi pro kontrolni ucely zmen v textu. Jednoducha kontrola je napr. soucet znaku.

function moje($str) {return strlen($str);}
$heslo = 'Byl jsem zde. Fantomas.';
$heslo = moje(moje(moje($heslo)));

//'Byl jsem zde. Fantomas.' = 23 znaku, '23' // faze 1
//'23' = 2 znaky, '2' // faze 2
//'2' = 1 znak, '1' // faze 3
//$heslo = 1;

V mem priklade heslo=1 bude stejne pro vsechny retezce delky 0-99.
V pripade s md5, sha1 se jedna o miliony kombinaci. Kazdopadne pro retezec s 50 znaky to bude vypadat takto:
50 -> 40 -> 16 -> 40
md5 ti tedy zvysi moznost nalezeni hesla, protoze snizi pocet znaku kodu. Navic, proti sha1 neni tak dokonale, takze to zvysuje o dalsich nekolik milionu sanci zadani spravneho hesla pomoci jineho retezce.
Vyhoda tveho kodu je, ze bez jeho znalosti se bude hur generovat heslo vyhovujici vyslednemu heslu, ktere nekdo zcizi treba z tve databaze. Ale zas ho muze zkusit podstrcit do session.

Kdyz uz chces kombinovat, tak zkus pouzit sul (salt). Pridej k heslu par dalsich znaku.
$heslo = sha1('123'.$_POST['heslo'].__FILE__);
Nox
Profil
Kubo2:
http://codahale.com/how-to-safely-store-a-password/

peta:
Jako že když přejmenuje nebo přemístí soubor, kde se to porovnáná, tak se invalidují všechny hesla v databázi? __FILE__ jako sůl teda ne
Majkl578
Profil
peta:
50 -> 40 -> 16 -> 40
MD5 má 32 znaků, ne 16.

proti sha1 neni tak dokonale, takze to zvysuje o dalsich nekolik milionu sanci zadani spravneho hesla pomoci jineho retezce
Říká se tomu narozeninový útok.

$heslo = sha1('123'.$_POST['heslo'].__FILE__);
Tohle byl doufám jen hloupý vtip.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: