首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

大家看看用C如何做这个小程序

2012-03-07 
大家看看用C怎么做这个小程序用C或汇编语言编写一个暴力密码破解程序,能用穷举法破解6位以内的字母和数字

大家看看用C怎么做这个小程序
用C或汇编语言编写一个暴力密码破解程序,能用穷举法破解6位以内的字母和数字组合密码,破解密码位数和组合可任意给定,密码可自行产生或取自于密码字典。此程序模块可方便移植于任何密码破解情况。验证可使用自行编制加密程序。

        撰写好设计报告,给出源程序清单
这是一个课程设计的要求,由于实践太少,一点头绪都没有。
1.怎么获取密码字典内的密码以及获取自行产生的密码
2.怎样设计编写才能方便移植
3.自行编写的加密程序怎样和破解程序连接
4.C怎么写界面

根本就是个初学者,请大家不要计较我对问题的表述的不精确。见谅!谢谢!
希望在完成它的同时能学到东西(不是找人帮我代做),所以:
请大家给点思路,或者是有借鉴的例子.
也许要用的知识没有学过,您认为做这个要学习哪个方面.


[解决办法]
帮顶
[解决办法]
界面不是主要的.不知道你的密码字典是个什么数据结构
[解决办法]
/* 黑客字典 */
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define R ((z==1)?m:(z==2)?1:m)
#define Q ((z==1)?n:(z==2)?lh:n)
#define Max 62

crack(void)
{
FILE *fp;
int z,lh,ii,jj,i,j,k,l,o,p,q,r,s,t,u,v,m,n;
char a[Max],ch;
long int lenth=0;
printf( "1.baoli\t2.define\nchoice: ");
scanf( "%d ",&z);
printf( "password lenth(3-12): ");
scanf( "%d ",&lh);
fp=fopen( "c:\\pass.dic ", "w+ ");
if(z==1)
{
for(jj=0,ii=48;ii <=57;ii++,jj++)
a[jj]=ii;
for(jj=10,ii=65;ii <=90;ii++,jj++)
a[jj]=ii;
for(jj=35,ii=97;ii <=122;ii++,jj++)
a[jj]=ii;
for(ii=0;ii <Max;ii++)
printf( "%c ",a[ii]);
printf( "\n ");
for(ii=0;ii <Max;ii++)
printf( "%d ",ii);
printf( "\ninput m,n:\n ");
scanf( "%d%d ",&m,&n);
}
if(z==2)
{
printf( "puts chars:\n ");
scanf( "%s ",a);
}
for(i=R;i <=Q;i++)
{
for(j=R;j <=Q;j++)
{
for(k=R;k <=Q;k++)
{
if(lh==3)
{
fprintf(fp, "%c%c%c\n ",a[i],a[j],a[k]);
continue;
}
for(l=R;l <=Q;l++)
{
if(lh==4)
{
fprintf(fp, "%c%c%c%c\n ",a[i],a[j],a[k],a[l]);
continue;
}
for(o=R;o <=Q;o++)
{
if(lh==5)
{
fprintf(fp, "%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o]);
continue;
}
for(p=R;p <=Q;p++)
{
if(lh==6)
{
fprintf(fp, "%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p]);
continue;
}
for(q=R;q <Q;q++)
{
if(lh==7)
{
fprintf(fp, "%c%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q]);
continue;
}
for(r=R;r <=Q;r++)
{
if(lh==8)
{
fprintf(fp, "%c%c%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r]);
continue;
}
for(s=R;s <=Q;s++)
{
if(lh==9)
{
fprintf(fp, "%c%c%c%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s]);
continue;
}
for(t=R;t <=Q;t++)
{
if(lh==10)
{
fprintf(fp, "%c%c%c%c%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t]);
continue;
}
for(u=R;u <=Q;u++)


{
if(lh==11)
{
fprintf(fp, "%c%c%c%c%c%c%c%c%c%c%c\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u]);
continue;
}
for(v=R;v <=Q;v++)
{
if(lh==12)
{
fprintf(fp, "%c%c%c%c%c%c%c%c%c%c%c%c%\n ",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v]);
continue;
}

}
}
}
}
}
}
}
}
}
}
}
}
rewind(fp);
while((ch=fgetc(fp))!=EOF)
{
if(ch== '\n ')
++lenth;
}
fclose(fp);
printf( "Done.\nThe file has %ld hang.\n ");
}

crack4()
{
FILE *fp;
int p,q,j,z,w=0;
char ch;
long m,n,i,lenth=0;
scanf( "%d ",&z);
fp=fopen( "c:\\pass1.dic ", "w+ ");
if(z==1)
{
printf( "130 137 start_number end_number:\n ");
scanf( "%d%d%ld%ld ",&p,&q,&m,&n);
for(j=p;j <=q;j++)
for(i=m;i <=n;i++)
fprintf(fp, "%d%ld\n ",j,i);
}
if(z==2)
{
printf( "0 813 start_number end_number:\n ");
scanf( "%d%ld%ld ",&p,&m,&n);
if(p> =1000)
{
for(i=m;i <n;i++)
fprintf(fp, "%d%ld\n ",p,i);
}
else
{
for(i=m;i <n;i++)
fprintf(fp, "%d%d%ld\n ",w,p,i);
}
}
rewind(fp);
while((ch=fgetc(fp))!=EOF)
{
if(ch== '\n ')
++lenth;
}
fclose(fp);
printf( "Done.\nThe file has %d hang.\n ",lenth);
}

[解决办法]
1.怎么获取密码字典内的密码以及获取自行产生的密码
读取字典文件就可以

2.怎样设计编写才能方便移植
一切遵守标准,万能了

3.自行编写的加密程序怎样和破解程序连接
??破解和加密木有关系吧?
和加密有关,就是解密,不是破解了 ...

4.C怎么写界面
使用简单界面吧,
就是类似于基本选项一样,
打印几个选项菜单供用户选择即可。

热点排行