升级使用无效的CRYPT_STD_DES salt生成的PHP(<5.3.2)密码

问题描述 投票:0回答:1

长话短说,我得到了一些密码,这些密码在版本为PHP的PHP版本中被不正确地加盐和散列,如果盐无效,则crypt()函数可以使用CRYPT_STD_DES算法。

但是在PHP 5.3.2+中:

5.3.2修复了无效轮上的河豚行为,以返回“失败”字符串(“ * 0”或“ * 1”),而不是退回到DES。

导致此问题的原因是,该盐原本是河豚盐,但包含“ $”字符(但在不知不觉中畸形)。

因此,我无法手动执行以下操作:crypt($pass, "$a");因为那现在不是有效的CRYPT_STD_DES盐。盐必须在“ ./0-9A-Za-z”范围内。它只是按照PHP开发人员的意图返回“ * 0”。

如何在PHP的最新版本(理想情况下至少为7.1)中验证这些格式错误的密码?

php hash passwords salt crypt
1个回答
0
投票

您可能正在寻找

password_hash ( string $password , int $algo [, array $options ] ) : string

https://www.php.net/manual/en/function.password-hash.php

© www.soinside.com 2019 - 2024. All rights reserved.