首页 > 解决方案 > 如何确定 PHP password_hash 函数是否支持“线程”选项?

问题描述

对于 PHP 函数password_hash手册说传递线程数是“仅当 PHP 使用 libargon2 时可用,而不是 libsodium 实现。”。

如果在不可用时设置了线程选项,则会给出错误。

对于库代码,如何在运行时确定线程选项是否可用?

标签: php

解决方案


PASSWORD_ARGON2_DEFAULT_THREADS常量仅在使用 libargon2 时定义:

PASSWORD_ARGON2_DEFAULT_THREADS Argon2lib 将使用的默认线程数。不适用于 libsodium 实现。

所以你可以测试常量是否存在:

if(defined('PASSWORD_ARGON2_DEFAULT_THREADS'))
{
   // Set the number of threads
   ...
}

推荐阅读