随机密码被网站拒绝:先核对长度、字符类型和符号限制
把注册页面的密码要求转成可验证条件,区分随机字符池与必须出现的字符。
场景:生成了密码,注册表单仍提示不合规
先读目标网站的实际规则:长度上下限、是否必须有数字或大小写、允许哪些符号。不要把真实密码贴到公开问答或工单。本文讨论的是字符规则校验,不评估具体账号的安全等级。
“允许出现”不等于“至少出现一次”
把数字加入候选字符池,仍可能随机抽出全是字母的字符串。本站生成器把每项勾选都视为必须条件:勾选大写、小写、数字、符号后,结果必须至少各有一个,且不得包含未勾选类型的字符。生成不满足条件的候选时重新采样,不给结果固定追加容易预测的后缀。
可复现的验证条件
下面是用于测试输出属性的条件,不是可直接使用的示例密码。以长度 20、四类字符全选为例:
长度恰好为 20
至少一个小写字母 a-z
至少一个大写字母 A-Z
至少一个数字 0-9
至少一个本站支持的符号 !@#$%^&*_-+=?
没有字符池之外的字符如果只选数字,输出应完全由数字构成;本站仍要求长度在 8 到 128 之间。小数、空值及超出范围的长度不应悄悄取整或截断,而应提示修正。
目标网站不接受某些符号时
本站目前使用固定符号集合,不保证满足每个网站的符号白名单。如果目标仅允许其中几个符号,不能只看“含符号”就认定可用。应选择支持该网站具体规则的生成方式,或在目标允许不含符号时取消此项,再核对完整结果。
随机源与结果边界
本站调用浏览器 Web Crypto 的 getRandomValues 获取安全随机值,不使用 Math.random 生成密码;安全随机源不可用时停止生成。工具不上传结果、不记录生成历史。浏览器扩展、剪贴板同步、截图和他人可见的屏幕仍可能暴露密码,使用时要留意环境。
字符要求通过,不等于账号安全已被证明
生成器只保证本站定义的长度与字符条件,不替目标网站完成账号验证,也不为密码给出“绝对安全”的承诺。目标网站接受结果后,还应按其账户安全要求妥善保管。