我需要让laravel Hash :: function使用Whirlpool而不是bcrypt。这需要与Auth :: class兼容。
由于我对Laravel不是很有经验,所以我真的不知道从哪里开始。我见过vendor \ ircmaxell \ password-compat \ lib \ password.php文件。
我应该在开始时创建一个新定义并尝试替换所有内容,以便它使用php哈希函数吗?
我知道这不是最佳选择,但它是兼容性所必需的。
提前致谢
答案 0 :(得分:3)
在Laravel 4中,Hash类是一个默认使用BcryptHasher类的外观。这个类实现了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。