crypt - это преобразование пароля в одну сторону (приэ этом могут использоваться разные алгоритмы - DES или MD5).
Т.е пароль человека единожды превращается в абракадабру и так и сохраняется на сервере.
В результате - если нехорошие люди вломятся на сервер, они не получат список паролей пользователей.
Далее - как авторизирвать? А просто. Если ты берешь одну и ту же строку - то она превращается в одну и ту же абракадабру
По ней их и сравниваешь!
A =crypt=> B
C =crypt=> B
B == B значит A = C
Да.. A и C теоретически могут отличаться (т.е несколько разных паролей превращаться в одно и то же), но это маловероятно.
Затем - чтобы уберечися от перебора по словарю еще добавили "solt" - оно вносит случайность в процесс.
Это 2 буквы. crypt("pass","ac").
Т.е чтобы 1й раз сохранить пароль делаем $RRR=crypt("pass") , a чтобы проверить - берем из этой аброкадабры первые 2 буквы
(это для DES) и увидешь какие 2 (для MD5) и проверяешь:
if ( strstr($RRR,crypt("pass-ot-usera",первые 2 буквы $RRR))
Вот.. Понятно изложил или подробнее ?