【发布时间】:2018-07-17 14:24:27
【问题描述】:
我尝试将 PHP 的 password_hash() 函数与 PASSWORD_ARGON2I 算法一起使用,但是,我收到以下错误消息:
警告:使用未定义的常量 PASSWORD_ARGON2I - 假定为“PASSWORD_ARGON2I”(这将在未来引发错误 PHP 版本)在 some-file.php 行 181
行的 some-file.php 中抛出
警告:password_hash() 期望参数 2 为整数,字符串在 some-file.php 第 192 行
致命错误 中给出:未捕获的 PDOException: SQLSTATE[23000] :违反完整性约束:1048 列“密码”不能为空 在一些文件.php:232 堆栈跟踪: #0 some-file.php(232): PDOStatement->execute() #1 {主要} 在 232
我逐字跟踪the official documentation of the function,但仍然遇到此错误。
然后我做了一些研究,发现"PHP should be compiled using –with-password-argon2" (where they refer to this file)。
我不知道该怎么做,也找不到任何可以指导我完成这些步骤或为我提供更多信息的页面。
哈希函数与PASSWORD_DEFAULT 完美配合,但这不是我目前需要的。
【问题讨论】:
-
php编译与你的问题有什么共同点?
-
您需要提供一些有关您的环境的信息。您下载 PHP 源代码并使用 configure/make 和 gcc 之类的东西将 C 编译为可执行文件。
--with-password-argon2将是一个配置选项。如果您以前从未编译过某些东西,您可能会不知所措。 -
是的,据我所知,我以前从未编译过。所以我并没有真正理解这一切,这就是我寻求帮助的原因。你有什么建议从哪里开始阅读它? @德文
-
尝试谷歌搜索
compiling php from source。那将是你最好的选择。这并不复杂,但由于您没有提供任何环境细节,我不能告诉您我推荐它。如果您从系统包安装 PHP,您可能很难让自己编译的 PHP 版本在您的 Web 服务器上正常运行。 -
我认为它是随 XAMPP 7.2.2.0 自动安装的,我希望这是您要求@Devon 提供的环境细节
标签: php password-hash