2012-12-12 29 views
4

我們假設我是總共新手CakePHP。讓我們進一步假設我已經寫了我的用戶身份驗證完全是因爲它寫在this tutorial(除了它的錯誤,讓我浪費了一個多小時試圖找出)。如何使用CakePHP的新Blowfish/Bcrypt進行密碼

Migration Guide for 2.3bcrypt已經被添加到核心的哈希算法。關於如何實現這一點的唯一提示是:

您現在可以在$ authenticate數組中使用Blowfish以允許使用bcrypt密碼。

我完全不知道這意味着什麼,我現在可以在這裏使用bcrypt。谷歌搜索只導致了指導,這不指導我。我很想知道我可以如何激活這個功能 - 在哪裏放置選項以及如何編寫,以便它能正常工作,假設我的設置與上述教程中的相同。

此外,這是否需要特殊版本的PHP,還是可以在CakePHP支持的任何版本上運行?

謝謝。

回答

4

如果你要使用代碼是尚未穩定(2.3 RC)的文檔會恐慌,你需要弄清楚一些事情出來,而不文檔。即使沒有文檔,代碼也是免費提供的,並且has comments

河豚有它自己的Auth adaptor您需要使用。

您還可以查看tests如果文檔不幫助,爲測試提供的示例100的它比任何文檔好得多。

3

如果你已經在使用表單認證成功,你換'Form''Blowfish'爲您的身份驗證適配器,即

class AppController extends Controller { 
    public $helpers = array("Html","Form", "Js", "Csv"); 
    public $components = array(
      'Auth' => array(
       'authenticate' => array(
        'Blowfish' => array(/* your settings */) 
       ) 
      ) 
     ); 
     /* ... */ 
    } 

然後,你需要你的電話改變AuthComponent::password(如果你在你的用戶跟着教程可能從模型

AuthComponent:password($pwd) 

beforeSave)到

Security::hash($pwd,'blowfish'); 

因爲AuthComponent的密碼方法被實現爲使用您的Security.salt設置,該設置不適用於blowfish(它會生成一個新的salt並將其存儲在密碼哈希中)。

還要注意,在CakePHP中執行前綴與$ 2A $其中有PHP 5.3.7(見this note)之前安全問題的鹽。

相關問題