一句话回答: 大多数一次性验证码是六位,因为这是安全与易用之间的甜蜜点。六位有一百万种组合——在码过期前的短暂窗口里够难猜,又短到能从短信里读出、无差错地输入。位数更少容易被暴力破解;位数更多则在有了限速之后,几乎不增加安全性、只徒增烦恼。六位是刻意的平衡,不是偶然。

你已经输过成千上万次:短信或 App 里的六个小数字。为什么总是六位?不是五位,不是八位?答案是一段漂亮的安全设计,数学、人类记忆和攻击防御都在此交汇。下面讲清为什么六位成了一次性验证码的标准长度。
一、数学:一百万次猜测
六位验证码有 1,000,000 个可能值(000000–999999)。对盲猜的随手攻击者,一次就猜中的概率是百万分之一。再配上「约 30–60 秒过期」的码和「错误次数上限」,猜测就变得不切实际。
更短的码会迅速削弱这点:四位码只有 10,000 种组合——一旦防御松动就容易被暴力破解。六位把猜测空间推得足够高,让时间限制和次数限制来收尾。
二、人的一面:好读、好输
单论安全会偏好更长的码,但人得读它、输它。关于短期记忆的认知研究(经典的「7±2」个组块)表明,六位数字舒适地落在「一个人从短信瞥向表单时能记住」的范围内。
| 码长 | 猜测空间 | 易用性 |
|---|---|---|
| 4 位 | 10,000 | 很容易、偏弱 |
| 6 位 | 1,000,000 | 容易、够强 |
| 8 位 | 100,000,000 | 更强、易输错 |
六位正是「够安全」遇上「不会手滑输错」的地方。这个平衡也是短信验证码自动填充这类功能存在的原因——连输入那点小摩擦都替你省掉。
三、为什么更多位数不自动等于更好
一旦系统强制过期、并拦截反复的错误尝试——也就是阻止暴力破解的限速——多余的位数在现实里几乎不增加安全,却抬高了输错和烦躁。OTP 最大的风险根本不是被猜中,而是社会工程,比如验证码机器人诈骗和钓鱼,让你主动交出码。任何码长都防不住这个。
所以码长是针对「猜测」这个威胁调优的,而「人」的威胁靠一条规则处理:绝不交出你没申请的码。
四、如果你用在线号码收码,这意味着什么
无论码抵达物理 SIM 还是在线号码,六位格式都一样——长度由服务方设定,而非你的手机。当你无 SIM 卡在线收码时,你会看到同样眼熟的六位(个别服务偶尔是四、七或八位)。
实用提示:尽快输入,因为「让六位安全」的短过期窗口,也意味着复制粘贴太慢会让它失效。拿到、输入、搞定。
常见问题
Q:所有 OTP 码都是六位吗? 不是——六位最常见,但你也会见到四、七、八位,取决于服务。验证器 App 的 TOTP 码通常是六位。
Q:更长的码会更安全吗? 略微更安全,但一旦有了过期和次数限制,多余位数主要带来输错。真正的风险是钓鱼和诈骗,长度挡不住。
Q:为什么码这么快过期? 短窗口是安全的一部分:它压缩了攻击者猜测或复用码的时间,正是这点让六位就够用。
小结
六位是刻意的平衡点:一百万种组合在短过期内难以暴力破解,又好读好输。在有了限速之后,更多位数几乎不增安全,所以格式是针对猜测攻击调优的——而你收到的码,无论在线还是 SIM,处处都是同样的六位。