我使用crypt()来散列密码,使用像这样的河豚盐:$2a$,2digits,$,21charsin[a-zA-Z0-9]这里我犯了一个错误,第三个$之后的字符长度是21而不是22。但它工作正常,所以我没有发现错误。它适用于我运行Windows和php5.4.4的桌面,以及运行Amazonlinux和php5.3.x的AWSec2,盐太短。有一天我将AWSphp更新到5.5.14。然后问题发生了。crypt()始终返回*0。经过一些尝试,我在salt的末尾添加了一个$,所以它变成了22个字符。它再次工作并返回与以前相同的哈希字符串。虽然它不遵守河豚规则,但字符应该是[./a-zA-Z0