穷举密码算法 (转)[@more@]//******************************************************************* //在许多情况下我们需要穷举组合的算法,比如密码词典。 //我在
程序员大本营上不止一次看到有人需要穷举密码的算法,就写了一个。 //这个算法的关键是密码下标进位的问题。 //另外本例子中的写
文件语句
效率比较低,为了降低算法复杂度没有
优化。 //如果要提高写文件的效率,可以使用缓冲区,分批写入。 //*********************************************BREATH.CNPICK.COM***** void CreatePass
word() { #define PassWordMax 8//将生成密码的最大长度 char a[]="0123456789abcdefghijklmnopqrstuvwxyz";//可能的字符 long nDictCount=sizeof(a);//获得密码词典长度 char cPass[PassWordMax+2];//将生成的密码 long nMinL=1,nMaxL=3;//本例中密码长度从1-3 long Array[PassWordMax];//密码词典下标 ASSERT(nMinL=0;j--)//密码指针进位 { Array[j]++; if(Array[j]!=nDictCount-1)break; else { Array[j]=0; if(j==0)bNext=FALSE; } } } nLength++; } file.Close(); }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10790690/viewspace-951502/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10790690/viewspace-951502/