2011-12-03 188 views
6

我已經構建了一個登錄表單,但沒有註冊表單,所以我將用戶詳細信息直接放到sql數據庫中。
我發現當用戶嘗試登錄時,cakephp會自動哈希密碼,但此刻我無法登錄,因爲數據庫中的密碼未被哈希。
cakephp如何散列密碼?散列密碼

我的安全鹽是Dhhfei38fhDg37dg6Dg208Dh3h380Hrjd3

可否請你走在我通過它做什麼?

回答

8

散列密碼由創建:

$hashedPasswords = Security::hash($yourPass, NULL, true); 

Check the cakephp manual for more info

+2

我建議使用一種行爲來保持代碼DRY:dereuromark.de/2011/08/25/working-with-passwords -in-的CakePHP – mark

2

添加一個新用戶並輸入密碼。您可以獲取新用戶密碼的哈希值並將其粘貼到其他用戶的記錄中。在CakePHP中

+0

我沒有帶創建的註冊表單尚未雖然,只是想知道如果任何人都知道如何蛋糕它可以離開的註冊表格,直到後來,但仍然能夠登錄。謝謝 – Chris

2

作爲CakePHP的2.0,蛋糕僅在其他地方的密碼散列在登錄過程中, (如寄存器方法... ),那麼密碼將不會被自動散列,這是因爲對於cakephp的新用戶來說,這被認爲是一種奇怪的行爲。 如果你想散列密碼,你需要使用Sudhir提到的方法。 蛋糕不再自動散列密碼的好處之一是,你可以更容易地檢查密碼的複雜性(如果包含特殊字符,數字,字母ecc)。