Linux------密码字典生成器(c语言)

本密码生成器根据地区号码段(7位),然后补全后面4位数字来生成所有组合手机号(11位),其中代码中的1.txt文件是地区号码段,2.txt文件是生成后的密码字典。(注:每个地区的运营商号码段需从网上收集)

main.c

初始化
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
char s[11];
char ss[11];
char s1[11];
char s2[11];
char s3[11];
char s4[11];
int i=0;
int a,b,c,d;
int k=0;
int count=0;
char *num[]={"0","1","2","3","4","5","6","7","8","9"};
FILE *fp,*fb;
void check();
void creat();

主函数
int main()
{
        check();
        creat();
        fclose(fp);
        fclose(fb);
        return 0;
}

文件打开检查函数
void check()
{

        fp=fopen("1.txt","r");
        if((fopen("1.txt","r"))==NULL)
        {
                printf("读取文件打开文件失败\n");
        }
        else
        {
                printf("读取文件打开文件成功\n");
        }
        fb=fopen("2.txt","a");
        if((fopen("2.txt","a"))==NULL)
        {
                printf("写入文件打开文件失败\n");
        }
        else
        {
                printf("写入文件打开文件成功\n");
        }
}
密码生成函数
void creat()
{
        while(!feof(fp))
        {
           fscanf(fp,"%s\n",s);
           for(a=0;a<10;a++)
           {
                        strcpy(s1,s);
                        strcat(s,num[a]);
                        for(b=0;b<10;b++)
                        {
                                strcpy(s2,s);
                                strcat(s,num[b]);
                                for(c=0;c<10;c++)
                                {
                                        strcpy(s3,s);
                                        strcat(s,num[c]);
                                        for(d=0;d<10;d++)
                                        {
                                                strcpy(s4,s);
                                                strcat(s,num[d]);
                                                if(a==0&&b==0&&c==0&&d==0&&i==0)
                                                {
                                                  fprintf(fb,"%s",s);
                                                  i=1;
                                                }
                                                else
                                                {
                                                        fprintf(fb,"\n%s",s);
                                                }
                                                printf("%s\n",s);
                                                strcpy(s,s4);
                                        }
                                        strcpy(s,s3);
                                }
                                strcpy(s,s2);

                        }
                        strcpy(s,s1);
            }
       }
}

1.txt文件格式:
1.txt

makefile(自动化编译脚本)

CC=gcc
main: *.o
        $(CC) $^ -o $@
%.o: %.c
        $(CC) -c $^
#伪代码
.PHONEY: clear
clear:
        rm *.o main 2.txt

所需三个文件
在这里插入图片描述
输入make命令后生成可执行文件main(main.o为目标文件)
在这里插入图片描述
输入./main运行可执行文件,即可生成2.txt 。
在这里插入图片描述
2.txt(生成的密码字典)
2.txt

发布了17 篇原创文章 · 获赞 30 · 访问量 1823

猜你喜欢

转载自blog.csdn.net/qq_37451250/article/details/103109676