password_hash()
和 password_verify()
是 PHP 中用于处理密码散列和验证的内置函数。这两个函数使用 bcrypt 算法,并允许您设置不同的选项来定制散列过程。以下是如何使用这两个函数的示例:
- 使用
password_hash()
函数散列密码:
$password = 'your_desired_password'; // 可选的选项数组 $options = [ 'cost' => 10, // 计算哈希的成本(时间) 'memory_cost' => 16384, // 散列过程中使用的内存量 'time_cost' => 3, // 计算哈希所需的时间 'threads' => 1, // 并行执行线程数 'salt_length' => 64, // 生成的盐的长度 ]; // 使用 bcrypt 对密码进行散列 $hashed_password = password_hash($password, PASSWORD_BCRYPT, $options); echo "Hashed password: " . $hashed_password;
- 使用
password_verify()
函数验证用户输入的密码:
$user_input = 'user_input_password'; // 用户输入的密码 $stored_hashed_password = 'the_hashed_password_from_database'; // 从数据库中存储的散列密码 // 使用 bcrypt 验证用户输入的密码 $is_valid = password_verify($user_input, $stored_hashed_password); if ($is_valid) { echo "Password is valid!"; } else { echo "Password is not valid!"; }
在这个示例中,我们首先使用 password_hash()
函数对密码进行散列,同时设置了一些选项来定制散列过程。然后,我们使用 password_verify()
函数验证用户输入的密码是否与存储在数据库中的散列密码匹配。如果匹配,password_verify()
将返回 true
,否则返回 false
。