【问题标题】:Disable password hasing in CakePHP 4.x / Authenticator 2.x在 CakePHP 4.x / Authenticator 2.x 中禁用密码拥有
【发布时间】:2021-09-07 11:37:09
【问题描述】:

我正在将 CakePHP 用于一个学校项目,其中给你一个填充的数据库。

用户必须使用我已经设置的用户名/密码登录。然而问题是,数据库中的用户有一个未加密的密码,我想用它来验证他们。

我找不到任何方法来禁用密码哈希检查。我尝试像这样指定后备密码哈希。

$authenticationService->loadIdentifier('Authentication.Password', [
    'fields' => [
        'username' => 'username',
        'password' => 'password',
    ],
    'passwordHasher' => [
        'className' => 'Authentication.Fallback',
        'hashers' => [
            'Authentication.Default',
            [
                'className' => 'Authentication.Legacy',
                'hashType' => 'md5',
                'salt' => false
            ],
        ]
    ]
]);

但我找不到任何方法来禁用“hashType”。

【问题讨论】:

  • 谁给了你那个明文密码预填充数据库,把他们带到一个黑暗的角落,用一条湿鱼打他们的脸,直到他们求饶......一旦你完成了,更新数据库并对密码进行哈希处理。
  • @ndm 你是对的。我将数据库更新为一个简单的 sha1,并让 CakePHP 在登录时重新设置密码。我希望他们不介意我更改了数据库中的内容,否则我要去当地的超市找些鱼:)

标签: authentication cakephp cakephp-4.x


【解决方案1】:

我最终没有禁用密码哈希,而是在我的问题中使用了一种备用方法。

我使用 SQL Query 使用 sha1 对数据库中的所有密码进行了哈希处理。 (sha1 不安全,但在我的情况下不需要)。

当用户登录时,CakePHP 会检查密码是否必须升级为更安全的哈希值,并在需要时这样做。 (有关 CakePHP 哈希/升级的更多信息可以在这里找到:https://book.cakephp.org/authentication/2/en/password-hashers.html

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2018-09-13
    相关资源
    最近更新 更多