Я никак не пойму тему с солью хэшей. Если соль будет динамическая то допустим посолил хэш, добавил в БД. Потом например юзер хочет авторизоваться: вводит пароль и надо опять взять хэш с солью, но соль рандомная и в этот раз уже будет другая, следовательно и хэш выйдет другой - значит не совпадет с хэшем из БД... А если соль будет статичная то ее могут украсть и взломать все. Ну или где ее хранить тогда чтоб не украли?
В первом приближении солят для того, чтобы нельзя было заранее рассчитать большой набор хеш-значений для списка наиболее популярных паролей, а потом массово сверить его с базой. Поэтому соль можно хранить рядом с хеш-значением, важно чтобы она была различной для каждого хеша.