Я не силён в криптографии, но насколько я помню, соль использовали не только как способ увеличить строку пароля, а значит и стойкость хеша. Но и как безопасный метод передачи данных от браузера на сервер. Гляньте форумы готовые, движки итп, почему все хронят соли в базе, а не пишут алгоритмы динамических солей?
Скажем, вы пишите форум, решили использовать алгоритм с динамической солью, аля
substr(md5(md5 (<динамическая соль> . $password) . <статическая соль>), 0, 16);
Слабость этого способа в том, что злоумышленник заранее знает ваш алгоритм получения хеша, а значит и соль. Получив ту же куку с хешем (что явно проще, чем поиметь базу) у него не возникнет трудностей с подбором пароля, т.к. он в курсе, как этот хеш получается.
Другое дело, если соль динамическая + хранится на сервере в базе. Получив куку с хешем пароля, восстановить из неё пароль не удастся, ведь даже владелец этого хеша не знает свою соль, о ней знает лишь сервер.