程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 窮舉密碼算法

窮舉密碼算法

編輯:C語言基礎知識

  //*******************************************************************
   //在許多情況下我們需要窮舉組合的算法,比如密碼詞典。
   //這個算法的要害是密碼下標進位的問題。
   //另外本例子中的寫文件語句效率比較低,為了降低算法復雜度沒有優化。
   //假如要提高寫文件的效率,可以使用緩沖區,分批寫入。
   //*********************************************breath.cnpick.com***** void createpassWord()
   {
   #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<=nmaxl && nmaxl<=passwordmax);//容錯保證
   long nlength=nminl;
   register long j,i=0;
   bool bnext;
   cstdiofile file;
   file.open("c:dict.txt",cfile::modecreatecfile::modewrite);
   while(nlength<=nmaxl)
   {
   for(i=0;i<passwordmax;i++)
   array[i]=0;
   bnext=true;
   while(bnext)
   {
   for(i=0;i<nlength;i++)
   cpass[i]=a[array[i>;
   cpass[i]='
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved