禁用特定用户的密码哈希

时间:2015-06-12 11:09:51

标签: php cakephp cakephp-3.0

我们正在为管理员和普通用户使用单个表。我们需要以哈希格式保存管理员密码,但以纯文本格式保存用户密码。如何使用CakePHP 3.0

EDITED : 用户的用户名和密码用作另一个站点上的登录凭据作为API。所以我需要保存密码而不使用cakephp 3.0的散列方法

2 个答案:

答案 0 :(得分:1)

您需要使用beforeSave方法。

//在模型中

function beforeSave()
{
    // put the conditions here

return true;
}

答案 1 :(得分:1)

正如您在评论中多次指出的那样,您绝不应将密码作为纯文本存储在数据库中。这与您的应用程序是否直接使用它无关。正如Anthony在对你的问题的评论中提到的那样,你应该考虑加密加密的密码,这些密码可以被你的应用程序反转。

您还应该检查您使用的API是否提供了使用访问令牌登录的更安全方法。

如果你想坚持存储纯文本密码,那么你应该考虑将它们存储在散列的单独列中。例如: -

id | username | password | api_login_password

通过将某些记录与加密密码混合而不是其他记录来混合使用password列并不是一个好主意。

使用这样的架构,您不需要散列api_login_password,而是继续散列应用程序的密码。大概你有CakePHP设置来哈希用户实体的密码,这不会影响api_login_password列。