窮舉密碼演算法 (轉)

worldblog發表於2007-12-03
窮舉密碼演算法 (轉)[@more@]//******************************************************************* //在許多情況下我們需要窮舉組合的演算法,比如密碼詞典。 //我在員大本營上不止一次看到有人需要窮舉密碼的演算法,就寫了一個。 //這個演算法的關鍵是密碼下標進位的問題。 //另外本例子中的寫語句比較低,為了降低演算法複雜度沒有。 //如果要提高寫檔案的效率,可以使用緩衝區,分批寫入。 //*********************************************BREATH.CNPICK.COM***** void CreatePass() { #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/10752043/viewspace-987578/,如需轉載,請註明出處,否則將追究法律責任。

相關文章