需要将lacryvel哈希从bcrypt更改为Whirlpool

时间:2013-06-04 20:38:33

标签: php laravel whirlpool

我需要让laravel Hash :: function使用Whirlpool而不是bcrypt。这需要与Auth :: class兼容。

由于我对Laravel不是很有经验,所以我真的不知道从哪里开始。我见过vendor \ ircmaxell \ password-compat \ lib \ password.php文件。

我应该在开始时创建一个新定义并尝试替换所有内容,以便它使用php哈希函数吗?

我知道这不是最佳选择,但它是兼容性所必需的。

提前致谢

1 个答案:

答案 0 :(得分:3)

在Laravel 4中,Hash类是一个默认使用BcryptHasher类的外观。这个类实现了HasherInterface,可以在这里看到:

HasherInterface

为了使用Whirlpool而不是Bcrypt,您只需编写一个实现HasherInterface的WhirlpoolHasher类(使用BcryptHasher类来帮助您),然后将其绑定到Hash别名,如下所示:

App::bind('Hash', function()
{
   return new WhirlpoolHasher;
});

你可以把它放在全局的地方,比如routes.php,如果你没有很多绑定,或者可能创建一个bindings.php文件,并且需要来自app / start / global.php。

直接绑定的替代方法是更改​​HashServiceProvider类以实例化WhirlpoolHasher而不是BcryptHasher,或者创建自己的服务提供者并将其添加到app / config / app.php中的'providers'数组中常规HashServiceProvider。