1

我需要使 laravel Hash:: 函数使用 Whirlpool 而不是 bcrypt。这需要与 Auth:: 类兼容。

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

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

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

提前致谢

4

1 回答 1

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 中的“提供者”数组中,而不是常规的哈希服务提供者。

于 2013-06-05T13:29:24.887 回答