2013-06-04 45 views
1

我需要使laravel Hash ::函數使用Whirlpool而不是bcrypt。這需要與Auth :: class兼容。需要更改從bcrypt到惠而浦的laravel散列

因爲我對Laravel不是很有經驗,所以我不知道從哪裏開始。我見過vendor \ ircmaxell \ password-compat \ lib \ password.php文件。

我應該在開始時創建一個新的定義,並嘗試替換一切,以便它使用PHP哈希函數?

我知道這不是最優的,但它是可編程性所必需的。

預先感謝

+0

Laravel 3或4? – ARW

+0

Laravel 4. @AdamWathan – user1643162

回答

3

在Laravel 4中,哈希類是默認使用BcryptHasher類的外觀。這個類實現了HasherInterface,可以在這裏看到:

HasherInterface

爲了使用惠而浦,而不是Bcrypt,您只需編寫一個實現HasherInterface一個WhirlpoolHasher類(使用BcryptHasher類來幫助你)然後將其綁定到哈希別名,像這樣:

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

你就會把某處全球,像routes.php文件也許,如果你沒有很多的綁定,或者創建一個bindings.php文件並要求從app/start/global.php。

直接綁定的替代方法是更改​​HashServiceProvider類以實例化WhirlpoolHasher而不是BcryptHasher,或者創建自己的服務提供者並將其添加到app/config/app.php中的「providers」數組而不是常規的HashServiceProvider。

+0

非常感謝。這工作完美。我不得不改變HashServiceProvider。 再次感謝。 – user1643162

+0

太棒了,沒問題!可能會更好地事後創建自己的HashServiceProvider,因爲如果在Composer中進行更新,您可能會遇到更改後版本的問題。只是需要考慮。 – ARW