假设数据库里已存在一条长度为8位,值为“12345678”的密码。规定输入长度达到6位才开始比对。下文将分别列出用户输入密码长度分别是6、7、8位三种情况下,算法需要比对的内容和次数。
一、输入密码长度6位时
输入待匹配密码:123456
需要比对的次数:1
需要比对的内容:
循环计数变量 | 截取长度 | 比对内容 |
0 | 6 | 123456 |
二、输入密码长度7位时
输入待匹配密码:1234567
需要比对的次数:2
需要比对的内容:
循环计数变量 | 截取长度 | 比对内容 |
0 | 7 | 1234567 |
1 | 6 | 234567 |
三、输入密码长度8位时
输入待匹配密码:12345678
需要比对的次数:3
需要比对的内容:
循环计数变量 | 截取长度 | 比对内容 |
0 | 8 | 12345678 |
1 | 7 | 2345678 |
2 | 6 | 345678 |
备注:上面表格中,当截取长度是6时,应该有多种组合,可是为什么只比对了最后6位这一种情况呢?原因是每个步骤的比对结果是累积递进的,也就是说除了最后6位,其他的任何6位组合,在之前的过程中已经比对过了,且比对未通过,所以不用重复比对了。其他长度的比对,是同样的原理,以此类推。