大家看看用C怎么做这个小程序

guowei277184736 2007-05-03 11:23:29
用C或汇编语言编写一个暴力密码破解程序,能用穷举法破解6位以内的字母和数字组合密码,破解密码位数和组合可任意给定,密码可自行产生或取自于密码字典。此程序模块可方便移植于任何密码破解情况。验证可使用自行编制加密程序。

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

根本就是个初学者,请大家不要计较我对问题的表述的不精确。见谅!谢谢!
希望在完成它的同时能学到东西(不是找人帮我代做),所以:
请大家给点思路,或者是有借鉴的例子.
也许要用的知识没有学过,您认为做这个要学习哪个方面.
...全文
382 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guowei277184736 2007-05-12
  • 打赏
  • 举报
回复
看起来没有什么人回答嘛。
laiwusheng 2007-05-03
  • 打赏
  • 举报
回复
//续上
crack2()
{
FILE *fp;
long int lenth=0;
int a,b,c,d,e,f,h,k,m=0;
char ch,
ch1='/*',
ch2=':',
ch3='.',
ch5='\\',
ch4='-';
printf("h=1,19850102\t h=2,1985//0//02\n");
printf("h=3,1985:01:02\th=4,1985.01.02\n");
printf("h=5,1985-01-02\th=6,19850102\n");
printf("h=7,1985//1//2\th=8,1985:1:2\n");
printf("h=9,1985.1.2\t h=10,1985-1-2\n");
printf("h=11,1985\\1\\2\th=12,1985\\01\\02\n");
printf("Start_years month day End_year month day denfine:\n");
scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&h);
if((fp=fopen("c:\\day.txt","w+"))==NULL)
{
printf("Can't open the file.\n");
exit(1);
}
while(a<=d)
{
if(h==1)
{
if(b<10&&c<10)
fprintf(fp,"%d%d%d%d%d\n",a,m,b,m,c);
if(b>=10&&c<10)
fprintf(fp,"%d%d%d%d\n",a,b,m,c);
if(b<10&&c>=10)
fprintf(fp,"%d%d%d%d\n",a,m,b,c);
if(b>=10&&c>=10)
fprintf(fp,"%d%d%d\n",a,b,c);
}
if(h==2)
{
if(b<10&&c<10)
fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch1,m,b,ch1,m,c);
if(b>=10&&c<10)
fprintf(fp,"%d%c%d%c%d%d\n",a,ch1,b,ch1,m,c);
if(b<10&&c>=10)
fprintf(fp,"%d%c%d%d%c%d\n",a,ch1,m,b,ch1,c);
if(b>=10&&c>=10)
fprintf(fp,"%d%c%d%c%d\n",a,ch1,b,ch1,c);
}
if(h==3)
{
if(b<10&&c<10)
fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch2,m,b,ch2,m,c);
if(b>=10&&c<10)
fprintf(fp,"%d%c%d%c%d%d\n",a,ch2,b,ch2,m,c);
if(b<10&&c>=10)
fprintf(fp,"%d%c%d%d%c%d\n",a,ch2,m,b,ch2,c);
if(b>=10&&c>=10)
fprintf(fp,"%d%c%d%c%d\n",a,ch2,b,ch2,c);
}
if(h==4)
{
if(b<10&&c<10)
fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch3,m,b,ch3,m,c);
if(b>=10&&c<10)
fprintf(fp,"%d%c%d%c%d%d\n",a,ch3,b,ch3,m,c);
if(b<10&&c>=10)
fprintf(fp,"%d%c%d%d%c%d\n",a,ch3,m,b,ch3,c);
if(b>=10&&c>=10)
fprintf(fp,"%d%c%d%c%d\n",a,ch3,b,ch3,c);
}
if(h==5)
{
if(b<10&&c<10)
fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch4,m,b,ch4,m,c);
if(b>=10&&c<10)
fprintf(fp,"%d%c%d%c%d%d\n",a,ch4,b,ch4,m,c);
if(b<10&&c>=10)
fprintf(fp,"%d%c%d%d%c%d\n",a,ch4,m,b,ch4,c);
if(b>=10&&c>=10)
fprintf(fp,"%d%c%d%c%d\n",a,ch4,b,ch4,c);
}
if(h==6)
fprintf(fp,"%d%d%d\n",a,b,c);

if(h==7)
fprintf(fp,"%d%c%d%c%d\n",a,ch1,b,ch1,c);

if(h==8)
fprintf(fp,"%d%c%d%c%d\n",a,ch2,b,ch2,c);

if(h==9)
fprintf(fp,"%d%c%d%c%d\n",a,ch3,b,ch3,c);

if(h==10)
fprintf(fp,"%d%c%d%c%d\n",a,ch4,b,ch4,c);

if(h==11)
fprintf(fp,"%d%c%d%c%d\n",a,ch5,b,ch5,c);
if(h==12)
{
if(b<10&&c<10)
fprintf(fp,"%d%d%d%d%d\n",a,m,b,m,c);
if(b>=1&&c<10)
fprintf(fp,"%d%d%d\n",a,b,c);
c++;
if(a==d)
{
if(b>=e&&c>f)
break;
}
if(c>31)
{
b++;
c=1;
if(b>12)
{
a++;
b=1;
}
}
}
}
rewind(fp);
while((ch=fgetc(fp))!=EOF)
{
if(ch=='\n')
lenth++;
}
fclose(fp);
printf("\ndone.\nThe file has %ld hang.\n",lenth+1);
}

Addfile()
{
FILE *fp1,*fp2;
char a[Max],b[Max],ch;
printf("source file:");
scanf("%s",a);
printf("file to:");
scanf("%s",b);
if((fp1=fopen(a,"a+"))==NULL)
{
printf("Can't open the file.\n");
exit(1);
}
if((fp2=fopen(b,"r+"))==NULL)
{
printf("Can't open the file.\n");
exit(0);
}
while(!feof(fp2))
fputc(fgetc(fp2),fp1);
fclose(fp1);
fclose(fp2);
printf("Done.\n");
}
main()
{
char choose;
clrscr();
gotoxy(20,2);
printf(" Hacker Dictionary <Protype 1.0)");
gotoxy(8,4);
printf("by W.Z.T,2005.03.06 http://www.suse.edu.cn tthacker@eyou.com");
gotoxy(18,6);
printf("1.Violence and define\n");
gotoxy(18,7);
printf("2.mobile or telphone\n");
gotoxy(18,8);
printf("3.birthday\n");
gotoxy(46,6);
printf("3.Addfile.\n");
gotoxy(46,7);
printf("5.help\n");
gotoxy(46,8);
printf("6.exit\n");
while(1)
{
printf("choice:");
scanf("%c",&choose);
switch(choose)
{
case '1':
crack();
break;
case '2':
crack4();
break;
case '3':
crack2();
break;
case '4':
Addfile();
break;
case '5':
puts("I will be hacker");
break;
case '6':
exit(0);
break;
default:
printf("choice:1,2,3,4 or 5");
break;
}
}
}



laiwusheng 2007-05-03
  • 打赏
  • 举报
回复
/* 黑客字典 */
#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);
}
blackmurder 2007-05-03
  • 打赏
  • 举报
回复
界面不是主要的.不知道你的密码字典是个什么数据结构
caijize 2007-05-03
  • 打赏
  • 举报
回复
帮顶
jixingzhong 2007-05-03
  • 打赏
  • 举报
回复
1.怎么获取密码字典内的密码以及获取自行产生的密码
读取字典文件就可以

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

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

4.C怎么写界面
使用简单界面吧,
就是类似于基本选项一样,
打印几个选项菜单供用户选择即可。
guowei277184736 2007-05-03
  • 打赏
  • 举报
回复
谢谢 laiwusheng(风清扬)
学习下先

guowei277184736 2007-05-03
  • 打赏
  • 举报
回复
让各位见笑了,自行产生的也可以啊

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧