gpt4 book ai didi

PHP:如果基本字符串只有轻微变化,crypt() 函数将返回相同的字符串

转载 作者:行者123 更新时间:2023-12-03 22:54:30 25 4
gpt4 key购买 nike

我在使用 crypt 时遇到问题。我正在为客户重建站点。所以有很多从以前版本继承的代码。我必须保持站点原始数据库的完整性,因此我必须小心更改代码。之前的开发人员使用 crypt() 函数来创建用户密码的哈希值以供存储。我看到的奇怪效果是同一密码的细微变化有时会产生完全相同的散列。我不太了解 crypt 的工作原理,但在我看来这不应该发生。这里有一些代码可以作为示例。

echo crypt('Colliedog6','wfd')."\n";
echo crypt('Colliedog10','wfd')."\n";

这会在我的服务器上返回相同的散列字符串。我正在使用那个盐字符串,因为这是以前的开发人员使用的,所有当前密码都是使用那个盐字符串创建的,所以我真的需要使用它,除非我们想强制所有用户重置密码。这不一定是不可能的,但我们想避免它。为什么 crypt 会像上面那样采用两个略有不同的字符串并创建相同的散列?

最佳答案

来自 the docs :

The standard DES-based crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of str, so longer strings that start with the same eight characters will generate the same result (when the same salt is used).

关于PHP:如果基本字符串只有轻微变化,crypt() 函数将返回相同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9522857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com