PHP - Jakou hash funkcí zabezpečit hesla?

Od: Datum: 10.06.12 10:31 odpovědí: 2 změna: 13.06.12 15:18

Někde jsem četl, že MD5 je prolomena, ale v různých návodech, jak v php vytvořit registraci, tak md5 používají. Je pravda, že jsou asi 4 roky starý, tak možná tím.

Zajímalo by mě ale, jakou funkci doporučujete v dnešní době. Napadlo mě, že bych použil např. md5($heslo)."text", byla by to dostatečně zabezpečená metoda?


avatar
Upozornění
Tato otázka je 4 roky bez odpovědi a proto byla uzavřena.
Máte-li podobnou otázku, a nenašli jste vhodnou odpověď, založte novou otázku.
Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 10.06.12 11:00
 
avatar

Kde vezmete "text"?

Já používám to, co už jsem tu někde jinde psal: Vemu login, připojím salt (20 znaků), připojím heslo, připojím další salt, takže to bude mít dohromady 48 až nějakejch 70 znaků. Z tohodle spočítám hash, dostanu 32místné hex číslo, vemu (10+login/10) znaků od konce a přesunu je na začátek. (myslím normálně na způsob 12345 -> 45123)

Podle mě to má dvě výhody:

Od oka to furt vypadá jako md5 hash a může to být md5 hash. Kdo ale neví, že jsou písmena přehozená a že nejsou přehozená ve všech záznamech stejně (podle té délky loginu), tak má smůlu, nějaké rainbow tables na to fungovat nebudou. Kdyby to přehození náhodně zkoušel, změní se mu potřebný počet dotazů do db ze současného počtu o x řádů vejš.

Délka saltu a loginu je vzhledem k délce hesla dost velká. Jednou z vlastností hashů je, že malá změna vstupu udělá velkou změnu výstupu. Pokud by někdo hledal kolizi, která mu vytvoří stejný hash, normálně (bez omezujících podmínek) ji najde. Tady ovšem je třeba 8 login, 20 salt, 8 heslo, 20 salt. Jelikož se salt přidává na serveru a je neměnný a z logiky věci musí login zůstat stejný (identifikuje ten účet), může z těch 56 míst měnit pouze 8 (heslo), aby našel kolizi. A to je teda hodně velkej úkol si myslím.

Kdyby někdo znal nějaký nedostatek nebo vylepšení, taky se rád poučím :)

Ohodnoceno: 2x
 
Od: mark156
Datum: 13.06.12 15:18
 

používejte php funkci sha1();

 

 

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.