Я определенно не эксперт, но очень короткий ответ заключается в том, что «засоление» строки текста означает добавление нескольких дополнительных символов в конце.Вы можете посолить "соль" с "abcdefg", чтобы получить "saltabcdefg".Это может быть полезно, если «соль» - это пароль, который вы хотите сделать более сложным для угадывания.
Как правило, пароль + соль преобразуются («хэшируются») в результате некоторого труднообращаемого процесса в совершенно другую строку.Эта преобразованная строка затем сохраняется как пароль вместе с открытым текстом соли, и исходный простой текст самого пароля отбрасывается.Когда вы хотите проверить, что кто-то ввел правильный пароль, вы объединяете все, что они ввели, с солью, указанной в файле паролей, и затем хешируете результат.Если результат соответствует хэшу пароля, который у вас есть в записи, то вы знаете, что он ввел правильный пароль.
Реализация соли может быть так же проста, как выбрать строку, служащую солью, а затем убедиться, что вы отслеживаете ее.Но вы можете изменить соль для каждого пароля, и тогда вам понадобится способ отслеживать комбинации пароль и соль, а также генерировать варианты.Конечно, вы, вероятно, также захотите хешировать пароль, а не сохранять его в виде обычного текста, поэтому вам придется выбрать хеш-функцию.В этот момент проблема возникла из-за правильной засолки и реализации схемы защиты паролем.
Для PHP вы можете посмотреть, как некоторые фреймворки реализовали это.Две быстрые ссылки для CakePHP и Zend соответственно:
http://www.jotlab.com/2010/04/18/cakephp-rainbow-table-protection-behaviour/
http://www.zimuel.it/blog/2009/07/build-a-secure-login-with-zend-framework/