Crypt() is a joke because you have to "salt" it with two characters, and the encrypted output of whatever you encrypt with crypt() will always start with the two characters you used to "salt" it. So, in some circumstances, it may be very easy for a hacker to brute force some protected information. You have to combine a lot of unpredictable components in a single function to achieve decent encryption.
Luciano ES
Santos, SP - Brasil