之前帮小区物业统计门禁密码解锁概率的时候,彻底搞懂了4位数密码有多少组合,也摸清了日常密码设置里的各种漏洞。当时物业想统计业主简易密码的破解风险,让我帮忙核算所有4位数字密码的总组合数量,再对比常用弱密码的占比,用来调整门禁的安全策略。
先算最基础的总数。
0到9一共十个数字,4位数密码每一位都是独立选择,没有位数前置限制,首位可以是0。第一位有十种选择,第二位同样十种,三四位全部同理,叠加计算下来,完整的4位数密码组合总数就是10×10×10×10,整整一万种。
4位数密码组合的常规计算场景
一起帮忙核算的还有做网络运维的朋友,他平时专门负责设备密码安全检测,他的实操算法和我现场核算的结果完全一致。他说日常手机锁屏、门禁、保险柜的4位数字密码,默认规则都是数字可重复、首位不限,这也是大众最常用的密码设置模式,这个场景下的组合数量固定不会变。很多人误以为首位不能为0,会手动排除0开头的密码,其实生活里绝大多数数码设备的4位数密码,都没有这个限制。
就因为这个误区,不少人自己缩减了密码范围,变相降低了安全系数。手动避开0开头、避开重复数字、避开连续数字,看似谨慎,实则把原本一万种的组合量压缩到了几百种,破解难度大幅降低。朋友给我看过他的检测数据,市面上百分之八十的简易解锁工具,都是优先筛查这类人为简化后的密码组合。
受限条件下的4位数密码组合变化
不是所有场景都适用一万种组合这个数值,有特殊限制的情况下,组合数量会大幅变动,这也是很多人算错的关键。
| 密码限制条件 | 组合数量 | 适用场景 |
|---|---|---|
| 数字可重复、首位可为0 | 10000种 | 手机锁屏、门禁、行李箱密码 |
| 数字不重复、首位可为0 | 5040种 | 部分金融临时验证密码 |
| 首位不为0、数字可重复 | 9000种 | 纯数字账号编码、固定编号 |
| 首位不为0、数字不重复 | 4536种 | 正式设备唯一编码 |
当时核算的时候,最直观的感受就是,普通用户完全不用考虑复杂的受限组合,日常用到的所有私人密码场景,全部都是无限制的一万种组合。那些带限制的组合规则,基本只用在官方编码、设备编号这类专业场景,和个人密码设置毫无关联。
折腾好久才搞明白,大家纠结密码组合数量根本没有意义。哪怕总组合有一万种,普通人常用的密码也就几十种,生日、顺子、重复数字、对称数字,来回就是那几套。看似基数很大,实际有效安全的密码选择,被自己的使用习惯卡得死死的。
那天整理完所有数据,关掉表格之后,第一件事就是改掉了自己用了三年的门禁密码。