сегодня полдня думал над усложением системы.
в итоге придумал такую хрень:
1. юзер регается. вводит пароль forest
после регистрации ему выводится сообщение:
"ваш новый пароль: Xforest" где X - рандомное число от 1 до 6 (если у вас стоит проверка на то что пароль должен быть не менее семи символов)
а вот как он хешируется:
if (первый символ пароля == 1)
// способ первый
беруца 2,4,6 символы и вставляются после первого
>1frsforest
затем хешируется
if (первый символ пароля == 2)
// способ второй
беруца 2,4,6, затем инвертируются и вставляются после второго символа пароля
>2fsrforest
хешируется
...
таким образом набрасываем шесть алгоритмов.
фишка в том что для получения соли надо знать первое число.
были мысли хранить его в базе - но потом понял что можно украсть. хранить в куках - если они потрутся, юзер не будет знать число и сам не сможет войти
выходит надо хранить их в пароле.
думаю навязывание усложнения пароля ещё никому не повредило и не отбило желание регистрироваться.
защита от блондинок =)
итак, случилось невозможное и хацкер как-то узнал первое число от пароля (не зная сам пароль

)
теперь ему надо получить доступ к файлам и разведать эти шесть алгоритмов, а потом уж писать спецпрогу для брута.
пассворд про отдыхает!
взглянем на это с другой стороны:
у хацкера есть все шесть алгоритмов (это более реально).
для брута ему надо перебрать все шесть вариантов! потому что он не знает число юзера.
это увеличивает срок брута в шесть раз!
как вам такая система?