phpass返回不同的结果

问题描述:

我只是把我的项目从本地主机到我的主机,并使用相同的(phpass)函数我收到不同的结果和返回的字符串的长度也不同。 (和一切工作本地主机btw)phpass返回不同的结果

所以相同的函数在线时返回false。我想知道问题可能是什么。

这里的结果:

输入:

  • 本地主机:$ 2A $ 08 $ t5joFUIbEThylj/IyUVy7.WzMZm8fmKjsy0kZc/YxgqzkbYQWnlre
  • 主机:$ P $ 9 QiKVfJzpRzoToBCJg8FeaDIfcAJJ61

编辑:我打开TRUE标志,使密码便携式,但它似乎并没有工作。

编辑2:不适用于PHP 4或5,我DID开关便携式模式!

警告:默认情况下,库会生成强大的系统特定的 密码哈希,这些哈希不可移植。这意味着一旦创建, 用户数据库不能转储并导出到另一台服务器。这个 行为也可以在配置文件中更改。

- >Portable (PHPass) password hashes. Should I use them?

+0

你能告诉我我该如何使它现在工作? (PHP版本4.4.9,当我阅读我必须有便携模式时,如果我没有弄错) – BehnUm 2012-01-17 16:28:22

+0

你测试了新密码和便携模式吗? – MasterCassim 2012-01-17 16:36:43

+0

是的,但它仍然返回false!我甚至把我的PHP切换到5(使用htaccess),它仍然无法工作!有什么建议? – BehnUm 2012-01-17 18:50:20

如果我没有记错,phpass使用提供给它的最佳方法。在这种情况下,现场主机上可用的模块似乎与localhost上的模块不同,因此phpass必须选择不同的方法。 “$ 2a $”表示bcrypt,“$ P $”表示phpass'内部散列。即,现场主机似乎没有可用的bcrypt。

+0

你是对的,PHP版本是4.4.9,我只是不知道如何使它工作(我甚至打开便携式模式标志,但它仍然不起作用) – BehnUm 2012-01-17 16:29:41

+0

如果你得到一个结果在本地主机上以“$ 2a $”开头,那么你不使用便携式散列。确保使用TRUE作为第二个参数调用HashPassword()方法。 – 2012-01-17 16:42:51

+0

谢谢,我打开它,它现在可以工作 – BehnUm 2012-01-18 08:57:03

我终于发现问题不是phpass本身,但脚本导致了一个错误(mysql的真实姓名转义是问题,阿贾克斯实际上是隐藏它从我这里)反正,一切都很好,谢谢。