Crypt在服务器上与在本地计算机上不同

时间:2011-08-14 17:56:46

标签: php codeigniter crypt

我正在使用PHP(Codeigniter)和Phils RESTserver开发API。 我正在使用crypt()创建一个带密码和salt的哈希。

问题是crypt()算法的结果是不同的 在我的本地机器和服务器上。

它在本地工作正常但不在服务器上(简称)。我知道密码和盐是一样的,因为我尝试了硬编码。

来自本地机器的哈希:

$2a$10$g6J7CUjJvB0JpTd7UcrowePEbqp/oBmZEpd7vS.5HFYx38f08Tb/a

来自服务器的哈希:

$2jkP2/LlC/H6

有什么不对?

(服务器正在运行centos 5)。

1 个答案:

答案 0 :(得分:3)

您的PHP版本可能不支持针对crypt的blowfish哈希。输出中的$ 2a $表示您正在尝试使用CRYPT_BLOWFISH,这可能无法在两个平台上使用。

http://uk.php.net/crypt

PHP 5.3.2中修复了一个错误:

  

修复无效回合中的Blowfish行为以返回“失败”字符串   (“* 0”或“* 1”),而不是回退到DES。

所以我猜你服务器的哈希值会回落到DES,因为它只包含你盐的前两个字符。