纯随机字符串难记忆,强制用户保存导致体验差。本文实现「词库拼接 + 数字后缀」策略:从预置常用单词库随机抽词拼凑,长度不足补随机数,生成如 pingwater6、radiohap28 类易记密码。
2) {
$pwd = substr($pwd, 0, $length - strlen($num)) . $num;
} else {
$pwd = substr($pwd, 0, $length);
}
return $pwd;
}
// 示例输出
for ($i = 0; $i < 5; $i++) {
echo random_readable_pwd(10) . "\n";
}
// pingwater6
// radiohap28
// sunwhite84
// happykid44
// coffeetv12
?>
| 维度 | 评价 |
|---|---|
| 记忆友好度 | ⭐⭐⭐⭐⭐ 单词组合符合语言直觉 |
| 熵值/安全性 | ⭐⭐ 单词库固定、长度短,仅适合低安全场景(临时密码、邀请码、测试账号) |
| 抗字典攻击 | 弱,攻击者可遍历单词库组合 |
| 生成速度 | 极快,无加密运算 |