Forever
делать sha1(sha1(sha1 хреново.
Плюс sha1 уже не считается надежным.
Вот я такой говнокод юзаю, после продолжительного медетирования на гугл и gpu брутов:
static function PasswHashCreate($passw, $salt)
{
$passwCRC = hash('crc32', $passw);
$roundHash = hash('sha256', $passw.$salt);
$strToBin = pack('H*', $roundHash);
if((int)$passwCRC[0] <= 5)
$roundHash = str_rot13($roundHash);
return hash('whirlpool', $passwCRC.$roundHash.$passw.$strToBin.$salt);
}
Есть и другие способы, ну каждому как по вкусу придется :D Есть и кошерные способы например:
http://php.net/manual/ru/function.password-hash.phpСоленье нужно для одного, для защиты от радужных таблиц не более. Остальное для надежности, нужно разные алгоритмы намешивать и чем дольше вычисляется хеш тем лучше. Даже если под алгоритм запилить "сок" или найти дыру или она есть, всеравно долго подбирать.
Намешивание алгоритмов конечно хорошо, но если пароль 123, это всеравно не спасет, трушные челы делают вот такие пароли:
6249LyD5dR3^X82$x9qS$tWxBq%@gT
mg@fv824WSTZBvC9E$S%F$c4$^qHBF
%GZ3V9MV@7Hkce*2F@5W^wYmJbaxXo
24y884%E^up4PkqQQHTmHP53iEm^^t
Pk&9UN&sm8TFz5&Q#L7k$4G56bynY2
И еще всегда 1 пароль такого вида на ресурс, пароль от мыльца, аськи, контакта, однокласников вида vasya1993 не катит)