我正在使用http://www.openwall.com/phpass/进行散列。我希望为它添加名称空间,并添加单行,如下所示。
<?php
namespace myNameSpace; //I added this one line
class PasswordHash {
//...
}
?>
然后我创建了我的对象,但是,当我应用HashPassword方法时,结果完全不同。
require 'PasswordHash.php';
//$t_hasher = new PasswordHash(8, FALSE); //Original line
$t_hasher = new myNameSpace\PasswordHash(8, FALSE);
$correct = 'test12345';
$hash = $t_hasher->HashPassword($correct);
唯一的变化是我将类名称空间添加到类中的两行,并且我启动了对象。
什么可能导致差异以及如何识别和修复它们?
答案 0 :(得分:0)
根据文档http://us2.php.net/__destruct
从PHP 5.3.3开始,与a的最后一个元素同名的方法 命名空间的类名将不再被视为构造函数。这个 更改不会影响非命名空间的类。
phpass使用与命名空间类的最后一个元素同名的构造函数。将名称更改为__construct
。