在 CakePHP 4.x / Authenticator 2.x 中禁用密码散列

Disable password hasing in CakePHP 4.x / Authenticator 2.x

我正在将 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'。

我最终没有禁用密码散列,而是使用了一种回退方法作为我的问题。

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

当用户登录时,CakePHP 会检查密码是否必须升级为更安全的散列,并在需要时执行此操作。 (有关 CakePHP hashers/upgrading 的更多信息可在此处找到:https://book.cakephp.org/authentication/2/en/password-hashers.html