crypt(const char *key, const char *salt) 函数为C语言函数之一,返回使用 DES、Blowfish 或 MD5 加密的字符串。 在不同的操作系统上,本函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。
salt 默认使用DES加密方法。DES加密时,salt只能取两个
字符,多出的字符会被丢弃。
(1)salt这个字符串如果以$1$开头,以$结尾,那么这表示让crypt用MD5的方式加密,加密后出来的密文格式就是 $1$...$<密文正文> ,夹在$1$和$之间的字符串就是我们指定的密钥文字。这个密钥文字最多不能超过8个字符。
(2)如果salt字符串不是(1)方式的格式,那默认就用DES加密方法。DES加密时,salt只能取两个字符,也就是说,salt最多不能 超过2个字符,多出的字符会被丢弃,用DES加密出来的密文前两个字符就是密钥。后面紧跟着的就是真正的密文。
Standard DES: $1..m51.
Extended DES: $1$1/1..P0.
MD5: $1.yg5..
Blowfish: $1..gv4.