Autor Zpráva
Twinn
Profil *
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é?
Alastor_Kopal
Profil
a co třeba

CRYPT(MD5(SHA1(heslo))) ???
DoubleThink
Profil *
Jde o to zabezpečit dvě věci

a) stejné heslo u různých uživatelů by nemělo produkovat shodný hash
b) neměl by jít nalézt a použít kolizní řetězec v běžné rainbow table

Oba požadavky zajistí třeba sha1(heslo+uzivatelskejmeno+necodostdlouheho).
mckay
Profil
Twinn:
Teoreticky by si k tomu mohl ještě třeba využít čas - pro unikátnost hesla. Uložit do databáze čas registrace uživatele a přidat to k vygenerovanému hashi. Kontrola by probíhala stejně, akorát by si vytáhl před heslem ten čas.
Joker
Profil
Alastor_Kopal:
a co třeba
CRYPT(MD5(SHA1(heslo))) ???
Tohle bude slabší ochrana, než to sha1(sha1(heslo)+salt).

mckay:
Teoreticky by si k tomu mohl ještě třeba využít čas - pro unikátnost hesla.
Ale nedoporučoval bych skládat sůl jen z údajů, které jsou zveřejněné přímo na tom webu. Proč usnadňovat útočníkovi práci, že.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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