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 分。评分仅基于正向规则加分,无扣分机制。