我有一个大约 1400 个字符的令牌,我想使用 password_hash 函数对其进行哈希处理,但使用 PASSWORD_DEFAULT 算法将仅使用前 72 个字符生成哈希值。我已经探索了 PASSWORD_ARGON2I 算法,但我不确定它是否考虑了 1400 个字符的完整令牌长度。
我已经测试了以下内容:
php -r echo password_hash(<$embedtokenhere>, PASSWORD_ARGON2I) . "\n";
这会给我结果
$argon2i$v=19$m=1024,t=2,p=2$cUdEZjFHN2lHYzUwR2hqeg$aRzXaa1RAArMl+cwuczG6rng2omZjqJnaImnh4ZvxeM
是考虑所有字符进行散列还是 PASSWORD_ARGON2I 对要散列的输入字符串有长度限制?
如果您阅读了文档password_hash
,你会看到这个:
CAUTION使用 PASSWORD_BCRYPT 作为算法,将导致密码参数被截断为最大长度 72 个字符。
这仅适用于 PASSWORD_BCRYPT,这是默认的哈希算法password_hash
。如果你使用PASSWORD_ARGON2I
,这个限制不存在。
但你应该记住,PASSWORD_ARGON2I
仅存在于 PHP7.2 及更高版本中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)