Útočník je "povolen" znát sůl – vaše zabezpečení musí být navrženo tak, aby i se znalostí soli bylo stále bezpečné.
Co dělá sůl?
Sůl pomáhá při obraně proti útokům hrubou silou pomocí předem vypočítaných „duhových tabulek“.
Sůl činí hrubou sílu pro útočníka mnohem dražší (z hlediska času/paměti).
Výpočet takové tabulky je drahé a obvykle se provádí pouze v případě, že jej lze použít pro více než jeden útok/heslo.
Jestliže použijete stejnou sůl pro všechna hesla, útočník by mohl předem vypočítat takovou tabulku a pak brutálně vnutit vaše hesla do čistého textu ...
Pokud vygenerujete novou (nejlépe kryptograficky silnou) náhodnou sůl pro každé heslo, jehož hash chcete uložit, není problém.
Pokud chcete zabezpečení dále posílit
Můžete vypočítat hash několikrát (hash hash atd.) - nestojí vás to moc, ale útok hrubou silou / výpočet "duhových tabulek" to bude ještě dražší... prosím don Nevymýšlejte se – existují osvědčené standardní metody, jak to udělat, viz například http://en. wikipedia.org/wiki/PBKDF2
a http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard
POZNÁMKA:
Použití takového mechanismu je v dnešní době povinné protože „CPU time“ (použitelný pro útoky typu rainbow tables/brute force atd.) je stále více dostupný (viz například skutečnost, že cloudová služba Amazonu patří mezi 50 nejrychlejších superpočítačů na světě a může ji používat kdokoli za poměrně malou částku)!