You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP获取并校验用户输入的符合规则的强密码

PHP 强密码校验实现方案

规则确认

明确需要满足的全部校验规则:

  • 密码总长度大于8位
  • 至少包含1个小写英文字母(a-z)
  • 至少包含1个大写英文字母(A-Z)
  • 至少包含1个数字(0-9)
  • 至少包含1个特殊字符(示例范围:!@#$%^&*()_+-=[]{}|;':",./<>?,可按需调整范围)

推荐实现:分步校验

优先推荐分步校验的方式,可读性高,后续调整规则时修改成本极低,不容易出错:

/**
 * 强密码校验函数
 * @param string $password 待校验的密码
 * @return bool 校验通过返回true,失败返回false
 */
function checkStrongPassword(string $password): bool
{
    // 校验长度:大于8位即最少9位
    if (strlen($password) <= 8) {
        return false;
    }
    // 校验是否包含大写字母
    if (!preg_match('/[A-Z]/', $password)) {
        return false;
    }
    // 校验是否包含小写字母
    if (!preg_match('/[a-z]/', $password)) {
        return false;
    }
    // 校验是否包含数字
    if (!preg_match('/[0-9]/', $password)) {
        return false;
    }
    // 校验是否包含特殊字符,可按需调整正则内的特殊字符范围
    if (!preg_match('/[!@#$%^&*()_+\-=\[\]{}|;:\'",.\/<>?]/', $password)) {
        return false;
    }
    // 全部规则校验通过
    return true;
}

使用示例

// 测试合法密码示例
$testPassword = 'Tesing@123';
if (checkStrongPassword($testPassword)) {
    echo "密码合法";
} else {
    echo "密码不符合要求,请检查规则";
}

可选实现:单正则校验

如果需要用单条正则完成校验,可以使用如下规则,缺点是可读性差,调整规则难度较高:
校验正则:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{}|;:\'",.\/<>?]).{9,}$/

使用示例:

$testPassword = 'Tesing@123';
if (preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{}|;:\'",.\/<>?]).{9,}$/', $testPassword)) {
    echo "密码合法";
} else {
    echo "密码不符合要求";
}

内容的提问来源于stack exchange,提问作者Dilsha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:00:02