Sure! PHP 提供了许多身份验证相关的函数,可以用于验证用户的身份,并确保其权限。下面是一些常用的函数:
password_hash
该函数用于将密码散列并保存到数据库中,常用于用户注册和更改密码的场景。它接收两个参数:密码(字符串)和散列算法(例如 PASSWORD_BCRYPT
),并返回一个散列后的密码字符串。
// 生成密码散列
$hashed_password = password_hash('my_password', PASSWORD_BCRYPT);
// 将散列后的密码保存到数据库
$sql = "INSERT INTO users(username, password) VALUES('my_username', '$hashed_password')";
password_verify
password_verify
函数用于校验明文密码与散列密码是否匹配,并在匹配时返回 true
。它接收两个参数:明文密码和保存在数据库中的散列密码。
// 从数据库查询散列密码
$sql = "SELECT password FROM users WHERE username = 'my_username'";
$stmt = $db->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$hashed_password = $row['password'];
// 校验明文密码是否匹配散列密码
if(password_verify('my_password', $hashed_password)){
echo 'Password is correct.';
} else {
echo 'Password is incorrect.';
}
除了上述两个函数之外,PHP 还提供了很多其他的身份验证函数,如 md5
和 sha1
等,但由于这些算法很容易遭受攻击,不再被广泛使用。建议使用 password_hash
和 password_verify
函数来处理密码相关的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP 身份验证方面的函数 - Python技术站