为什么验证码大多数是 6 位数?
通常,偶数位更便于记忆,因为可以分成相同数量的多组模块来记。
比如——
6 位数字可以分为 2/2/2 或者 3/3 来记忆;4 位可以分为 2/2 或者一次性记忆。
5 位数不符合人类记忆习惯,不方便且易出错。所以现在以偶数位验证码居多。
文本验证码大多为 4-9 位数,数字越多,系统解码花费的平均时间越长,安全系数也越高。
如果用软件破解,根据当前各个互联网接口的响应时间加上网络传输时间,尝试一次验证码需要 50 毫秒。
那么——
如果是 3 位数验证码,则最多要从 000 到 999 尝试共 1000 次,需要 50 秒,一次猜中的概率为 0.1 %;
如果是 4 位数,最多需要 500 秒(8.3 分钟)一次猜中的概率为 0.01%;
同理,如果是 6 位数,最多需要 50000 秒(13.8 小时),一次猜中的概率为0.0001%。
目前动态文本验证码都具有「时效性」(几分钟后就会过期),有些系统会设置输入几次错误的验证码后锁定用户。
综合等待系统反应时间、安全系数和人的一般记忆规律,6 位数的文本验证码在实际应用中更常见。