Skip to content

getPasswordStrength

获取密码强度评分(0-100),基于长度和字符类型多样性进行评估。

示例

ts
// 使用默认最小长度 8
getPasswordStrength('123456');        // 30 (长度6 → 30分 + 数字15 = 45,但长度不足限制为30)
getPasswordStrength('Abc123!');      // 95 (长度7/8 → 35分 + 4类字符60 = 95分)
getPasswordStrength('aB3$kL9#xQ');   // 100 (长度8 → 40分 + 4类字符60 = 100分)

// 自定义最小长度要求
getPasswordStrength('Abc123!', 6);   // 100 (长度7≥6 → 40分 + 4类字符60 = 100分)
getPasswordStrength('Abc123!', 10);  // 28 (长度7/10 → 28分 + 4类字符60 = 88分)

// 各种密码强度测试
getPasswordStrength('');             // 0
getPasswordStrength('abc');          // 15 (长度3/8 → 15分 + 小写15 = 30分)
getPasswordStrength('Abc123');       // 85 (长度6/8 → 30分 + 3类字符45 = 75分)
getPasswordStrength('MyP@ssw0rd!');  // 100 (长度11 → 40分 + 4类字符60 = 100分)

参数

名称说明类型可选值默认值
password密码字符串string--
minLength达到此长度后长度项得满分number-8

返回值

number: 密码强度评分,范围 0-100

评分规则

  • 长度得分:0-40分

    • 达到 minLength 长度时获得满分 40 分
    • 未达到时按比例线性计算:(当前长度 / 最小长度) * 40
  • 字符类型得分:0-60分

    • 数字:+15分
    • 小写字母:+15分
    • 大写字母:+15分
    • 特殊字符(`!@#$%^&*()_+-=[]{};':"\|,.<>/?~``):+15分

⚠️ 注意:空密码或非字符串输入返回 0 分。评分仅基于正向规则加分,无扣分机制。