Dobrý den, mám hesla v databázu uložena jako sha1(heslo) a podle tohoto článku http://miho.blog.zive.cz/2010/01/jak-ukladat-hesla-do-databaze/ to není bezpečné. Nechci po uživatelích chtít, aby si měnili heslo. Použití vícenásobného hashování (sha1(sha1(heslo)) prý je k ničemu.
Co ale kdybych k aktuálnímu sha1otisku přisal sůl a pak bych použil znovu sha1? Tzn:
sha1(sha1(heslo)+salt)
Je to bezpečné?
Fórum › PHP
Bezpečné uložení hesel do DB
To Twinn : ano malo by to byt dostatocne, ide hlavne o to aby si sa nedala pouzit rainbow tabulka.... ktora zabezpecuje najjednoduchsie "zlomenie" hesiel, nakolko vacsina uzivatelov ma slovnikove hesla
inak salt moze byt aj napr uzivatelovo meno, cize sa bude vzdy menit aj salt ;)
Yety: Šifrovací algoritmy se dají rozšifrovat, a tedy to není vhodný způsob ukládání hesel do DB. A hashovací algoritmus nikdo ze dne na den nevymyslí.
Správný postup je sha1($username.$heslo). Takto se stává z username dynamická sůl a díky tomu dvě stejné hesla mají odlišný hash.
To polonium : Je to jedno, jestli MD5 nebo SHA1.
Každopádně jako sůl bych doporučoval používat něco neveřejného (přezdívka je veřejná) a lze si tedy sestavit ke konkrétnímu uživateli opět hashe slovníkových hesel.
Sleduj mě na twitteru – @lukaschury.
To Curo : ano, najlepsie asi nieco taketo:
sha1($login."^^^jdjžťHUIHZU*+djf## NEJAKY ZHLUK ZNAKOV (pismena,cisla,specialne znaky)Žu<đ5".$password);
samozrejme dany "zhluk znakov" musi byt rovnaky :smile1:
stiahneš si z netu AES šiftovací algoritmus, nastavíš dĺžku 256 bitov a pokiaľ máš zabezpečený prístup k databáze potom sa nemáš čoho báť.
stiahneš si z netu AES šiftovací algoritmus, nastavíš dĺžku 256 bitov a pokiaľ máš zabezpečený prístup k databáze potom sa nemáš čoho báť.
stiahneš si z netu AES šiftovací algoritmus, nastavíš dĺžku 256 bitov a pokiaľ máš zabezpečený prístup k databáze potom sa nemáš čoho báť.
polonium napsal:
Je nejaky specialni duvod proc nepouzivate md5??
MD5 už dnes není příliš bezpečné.
@Curo: Dynamická sůl má hlavní účel k tomu, aby dvě stejné hesla neměly stejný hash. Kdyby to bylo bez soli, zadal bys "123456789" a automaticky by ti to vyhodilo všechny uživatele s tímto heslem, mezitímco takhle cracker musí jít uživatel po uživateli. Neveřejný dynamický hash je podle mě už mírně přehnané, to už jen zvětšuje délku hesla v případě, že by se sha1čku pokusil někdo lámat.
w3m napsal:
Neveřejný dynamický hash je podle mě už mírně přehnané, to už jen zvětšuje délku hesla v případě, že by se sha1čku pokusil někdo lámat.
v mojom pripade je to hlavny dovod... v pripade kompromitacie mojej db cracker nevyuzije ani rainbow ani brutalforce lamanie, nakolko maju moje hesla minimalne 150-200 znakov. Paranoia v tomto pripade nikdy nie je dostatocne velka....
Mozno dalsi mensi doplnok by spocival v prehadzani poradia vysledneho hash-u, nejak takto: substr($hash,30,10).substr($hash,0,15).substr($hash,15,15), pripadne ine upravy....
To Mega.Lama : sifrovat heslo je blbost, nevidim dovod naco by to bolo dobre, zbytocne velky bezpecnostny risk... bez dovodu.. Ja pouzivam sifrovanie na osobne udaje, tel.cisla ale aj e-mail adresy, ale na heslo to je fakt blbost...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Zkoušeč hesel — založil Honza
Bezpečné přihlášení — založil karel
Bezpečné ukládání dat do souborů — založil xmlatickax
Je bezpečné uchovávat heslo od databáze v PHP kódu — založil Adam
Moderátoři diskuze