网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.看我不动也会张的大嘴巴.
.数据结构C语言实现系列——二叉树.
.c程序设计教程7-16号习题,见笑了.
.帮助程序员解脱困境的十条技巧.
.C++/CLI中实现singleton模式.
.TCanvas.
.C++类对象的拷贝构造函数分析.
.如何实现在一个Dbgrid中显示多数.
.在DBGrid中可选中行而又可进入编.
.C语言程序设计基础讲座之指针的慨.
.学数学也要学点偷懒的技术.
.TCanvas类.
.C++箴言:谨慎使用多继承.
.C++ Builder 初学问与答(十七).
.链表的c语言实现(六).
.Linux下的代码淬火技术.
.C++中的Singleton类的实现(1).
.飞机订票系统设计.
.C++箴言:谨慎考虑资源管理类的拷.
.用BCB实现禁止用户关闭Window系统.

穷举密码算法

发表日期:2008-3-8



  //*******************************************************************
//在许多情况下我们需要穷举组合的算法,比如密码词典。
//这个算法的要害是密码下标进位的问题。
//另外本例子中的写文件语句效率比较低,为了降低算法复杂度没有优化。
//假如要提高写文件的效率,可以使用缓冲区,分批写入。
//*********************************************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]='\0';
file.writestring(cpass);
file.writestring("\n");
for(j=nlength-1;j>=0;j--)//密码指针进位
{
array[j]++;
if(array[j]!=ndictcount-1)break;
else
{
array[j]=0;
if(j==0)bnext=false;
}
} }
nlength++;
}
file.close();
}
上一篇:巧算星期几 人气:684
下一篇:轻轻松松从C一路走到C++系列文章之一 人气:523
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐