我刚刚在CentOS 5.6中创build了一个新用户,运行passwd user ,提供密码io.6,{9001JIAIua121698aa]] 。 系统说“不好的密码:它太简单/系统”。 没有什么大不了的(无论如何它都接受),但我真的很感兴趣,这是如此简单化/系统化?
我只能看到一个苹果开源实现 ,在这种情况下,你的密码看起来“太简单”了。 algorithm很可能是相似的。
代码是
#define MAXSTEP 4 i = 0; ptr = password; while (ptr[0] && ptr[1]) { if ((ptr[1] == (ptr[0] + 1)) || (ptr[1] == (ptr[0] - 1))) { i++; } ptr++; } if (i > MAXSTEP) { return ("it is too simplistic/systematic"); }
基本上它取得了密码中的所有字符,并检查下一个字符是否是当前字符+/- 1(字符是一个字节)。
在你提供的密码
io.6,{9001JIAIua121698aa]]
01 , JI , 21和98递增i计数器。 MAXSTEP为4,触发了太简单/系统的信息。
该algorithm不是很聪明,因为它不考虑密码的长度和其他字符的复杂性。