Agent Skills
返回列表
密码强度检测

密码强度检测

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/dzl20266512。

技能介绍

问题:密码强度不该被“顺手评一下”

注册和改密表单都想要强度反馈,但常见实现有两个坑:要么把明文密码 POST 到后端或第三方评分服务,要么只做 length >= 8、是否含数字这类静态正则。前者扩大了明文暴露面,密码一旦离开浏览器,就不再只是“客户端校验”;后者只能挡住最低级口令,无法解释为什么 Tr0ub4dor&3 仍然容易被猜出。实际风险来自用户把账号名、邮箱前缀、常用短语重组成密码,这些信息很难在纯规则里体现,却会显著降低搜索空间。

在表单旁给一个可信的强度结果,前提是不把密码发送出去,同时能把“太弱 / 一般 / 较强”翻译成可执行的下一步。

技能如何工作:本地调用 zxcvbn 的核心流程

该技能的目标是把 zxcvbn 封装成前端可调用的强度检查能力,用于账号注册与修改密码场景:

  • 本地评估:在浏览器侧对输入的密码做强度计算,密码不出页面,不依赖后端接口或第三方评分。
  • 可读结果:输出至少包含 score(0~4)、中文强度等级、guesses 或可读的猜测次数估算,以及 1~3 条改进建议。
  • 上下文输入:允许把用户名、邮箱本地名等作为 user_inputs 传入,专门降低“密码等于账号”这类低熵组合的得分。
  • 界面约束:UI 只做强度条和文案展示;不替用户生成并自动填入不可见密码,除非用户明确要求生成器另做。
  • 动效偏好:尊重减少动效设置,强度条可以不做动画,只保证状态变化可读。

关键步骤如下:

  1. 安装 zxcvbn 或维护中的兼容包,封装 checkPasswordStrength。
  2. 在密码输入框监听 @input,本地更新强度条;同时传入账号相关 userInputs。
  3. 自测覆盖边界:确认 123456 评为很弱,较长无规律口令得到更高 score,并验证过程中没有网络请求。

适用边界:把能力用在该用的地方

它适合注册和改密这类需要即时强度反馈的表单,也适合希望在客户端完成评估、减少服务端压力的项目。不适合把密码明文发送到任何第三方“测强度”服务;该技能明确禁止这类网络外传行为。

使用时需要注意:

  • 不要替代口令生成器:技能默认不生成密码、不自动填入;若需要生成能力,应作为独立功能实现。
  • 不要只盯分数:guesses 与建议比单一 score 更能说明风险,建议在 UI 中同时呈现。
  • 不要忽略 userInputs:若表单已有用户名或邮箱,应传入本地值,避免“密码=账号”被高估。
  • 不要默认有动画:尊重减动效偏好,强度条可在无动画状态下完成状态切换。

使用场景

  • 在注册页面,需要在不传输密码到后端的情况下,实时显示密码强度并提供改进建议
  • 修改密码时,希望本地计算强度评分,同时将用户名作为上下文输入降低弱密码得分
  • 设计表单时,需要在客户端完成密码强度检测,避免明文传输到第三方服务
  • 为密码输入框添加强度条和中文提示,要求支持减动效偏好设置

适合人员

  • 前端工程师,需要集成不传输密码的本地强度检测功能
  • 安全团队成员,关注如何避免明文密码外传并符合合规要求
  • 运维人员,希望在注册/改密流程中添加客户端安全检查
  • 表单开发者,需要在不依赖后端的情况下实现密码强度提示