Skip to content

密码加密

正确加密密码是保护用户数据的关键。

不要使用的方法

php
<?php
// 错误!不要使用这些方法
md5($password);
sha1($password);
base64_encode($password);
?>

正确方法:使用 password_hash()

php
<?php
// 加密密码
$hash = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hash)) {
    // 密码正确
}
?>

选项说明

php
<?php
// 使用 BCRYPT(默认)
$hash = password_hash($password, PASSWORD_BCRYPT);

// 指定成本
$options = ['cost' => 12];
$hash = password_hash($password, PASSWORD_BCRYPT, $options);

// 使用 ARGON2
$hash = password_hash($password, PASSWORD_ARGON2ID);
?>

重新加密

php
<?php
if (password_needs_rehash($hash, PASSWORD_DEFAULT)) {
    $newHash = password_hash($password, PASSWORD_DEFAULT);
    // 更新数据库中的哈希值
}
?>

下一步

学习现代 PHP → 现代 PHP

基于 VitePress 构建