我在启用 Argon2 进行密码散列时遇到问题。我正在从 Amazon Linux 2 的源代码构建 PHP,但是一旦构建完成并编译 PHP,PASSWORD_ARGON2I
常量未定义且算法不可用。
我尝试了许多不同的方法来使用不同的库来编译 PHP,但它们都没有给我我需要的 Argon2 算法。下面我将列出我已采取的一些步骤:
1) 送旗--with-sodium
使用此标志编译完成,但运行包含该函数的测试脚本password_hash()
显示 Argon2I 不可用。
2) 使用标志编译--with-password-argon2
由于缺少库,这无法编译,这可以在下面的错误中看到。
checking for Argon2 support... yes
checking for Argon2 library... not found
configure: error: Please ensure the argon2 header and library are installed
由此,我假设我缺少标志工作所需的库,因此我安装了Libsodium。再试一次也有同样的结果。
3)接下来,我会根据教程中的建议安装更多依赖项。它们是: - argon2 - libargon2-0 - libargon2-0-dev
这确实给了我argon2
可以工作的 cli 工具,但是再次编译 PHP 并不能解决同样的错误。
在这一点上,我不确定我的下一步是什么,任何帮助将不胜感激。