Support for crypt() password hashing

Using crypt() is much more secure than homemade salted hashing. Key difference is computational complexity: default md5 hash (even salted) can be reversed as a breeze. Even sha1 hash.

General-purpose hash algorithms has high hashing speed by design. That is unacceptable in case of storing passwords. Special algorithms such as bcrypt, scrypt, PBKDF2, etc must be used. Easiest way to implement strong hashing is to use special system function for it — crypt().