crypt()
generates MD5
hashes such as:
$1$bp2kK.9.$P1X0o32vzF1C/KPxY22AJc
in the following format:
$1$ # this indicates that it is MD5 bp2kK.9. # these eight characters are the significant portion of the salt $ # this character is technically part of the salt, but it is ignored P1X0o32v # the last 22 characters are the actual hash zF1C/KPx # they are base64 encoded (to be printable) using crypt's alphabet Y22AJc # floor(22 * 6 / 8) = 16 (the length in bytes of a raw MD5 hash)