Nejste přihlášen/a.

Přihlásit se do poradny

 

PHP - Jakou hash funkcí zabezpečit hesla?

Od: php odpovědí: 2 změna:

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?

 

 

2 odpovědi na otázku
Řazeno dle hodnocení

 

 

dzordz*
hodnocení

2x

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 :)

 

mark156
hodnocení

0x

používejte php funkci sha1();

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

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.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]