2011-12-03 146 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)。