H6.04.1password rules shown before typing设计研究

复杂度规则需在输入前展示

别名: 密码规则前置 · composition policy visibility · 密码要求说明

概念解释

密码框若在提交后才说「必须含大写、数字与符号」,人已经按自己的策略想好一串,再被规则打回。在输入前展示指焦点进入字段时(或更早)就能看见将要执行的约束,并且输入过程中只标记尚未满足的项,而不是事后用一句「不符合要求」概括。这条管规则的可见时机,不管规则本身是否过严,也不管能不能粘贴。

机制

设密是一次规划:人从记忆里取出或从管理器里生成候选,再对照规则裁剪。规则后置把规划变成试错:每失败一次就改候选,工作记忆里的秘密被反复改写,最后留下的往往是「在原串末尾加 1!」这种可预测补丁。前置展示让规则成为规划输入,而不是审判。实时勾选(长度已够、尚未含数字)把约束从一段法律文本变成可逐项完成的清单,减少「到底差哪一条」的猜测。若规则写在远离字段的帮助链接里,等于没有前置——人在字段上时看不见。

怎么研究

比较「提交后才报规则」「焦点时列出规则」「逐项实时满足标记」,看尝试次数与最终密码的结构。

自变量:规则首次出现的时机、是否逐条勾选、失败文案是总括还是指出未满足项。 因变量:提交前失败次数、在末尾追加字符的比例、完成时长、能否在不提交的情况下复述全部规则。

实验室常给假账号,人会用符合规则的固定测试串,测不到规划被打断。要用对方自己的密码策略(或管理器生成)才看得出后置规则的补丁行为。不要把实时标记的「更快完成」直接读成更强密码——速度和秘密结构要分开看。NIST SP 800-63B 讨论的是该不该设组合规则;即便产品仍保留规则,可见性仍是独立变量。

边界

密码管理器生成并填入时,人可能根本不看规则;前置清单对这些人价值低,但失败时仍需指出是哪一条与生成器策略冲突(例如禁止某些符号)。极短的「至少 8 位」一条规则,用占位符重复一遍即可,不必做成仪表盘。登录框不是设密框:登录失败不应展示注册时的复杂度清单,那会给旁观者额外信息。屏幕阅读器用户需要规则与字段用可访问描述关联,只靠字段下方变绿的图标不够。

怎么落地

  • 在密码字段获得焦点时展示将执行的全部约束,逐条列出;输入过程中把已满足项勾掉,提交时只高亮仍未满足的项。
  • 规则文本与校验器同源,禁止帮助中心与前端校验各写一套。
  • 登录页不要复述设密规则;设密与重置页使用同一份前置清单。
  • 验证:让未参与设计的人在不提交的情况下说出所有规则;再故意违反其中一条后提交,看反馈是否指向那一条而不是「密码不符合要求」。录屏统计有多少人在第一次提交前改了候选串——前置成功应让多数规划发生在首次提交前。

延伸

  • 同组H6.04.2 过严规则会导致更弱的实际密码 · H6.04.3 禁止粘贴会阻碍密码管理器
  • 相邻H6.11 密码找回与重置 · H1.04 实时校验的时机
  • 站内检索password composition policy · just-in-time password rules · NIST SP 800-63B

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H6.04.1