C语言实现密码字典生成器

news/2025/1/22 18:36:45/

使用C语言实现一个简单的密码字典生成器

    • 介绍
    • 递归生成字典函数
    • 生日字典函数
    • 主函数
    • 运行样例展示

介绍

在密码长度固定时,用简单的多重循环很容易就实现密码字典的生成,但是当密码长度较长或者密码长度不固定时,这种多重循环很难完成我们的需求了,遇到这样的问题,应该就需要交给递归了,这篇文章所描述的密码字典生成器就是利用递归算法来实现的。后来又增加了生日密码模式的功能,虽然这个功能很简陋,但也使其功能得以拓展。

递归生成字典函数

定义了全局变量来记录字典空间,利用递归算法实现了密码字典的生成。

#include<stdio.h>int n=0,l,flag=0;
int min,max; 
char p[10];print(int n,int l,FILE* pf)
{int j;if(n==l){fprintf(pf,"%s\n",p);flag++;return;}for(j=min;j<=max;j++){p[n]=(char)j;print(n+1,l,pf);}
}

生日字典函数

简单的闰年判断和月份日期遍历。

printday(int ymin,int ymax,FILE* pf)
{int y,m,d,dmax;for(y=ymin;y<=ymax;y++){for(m=1;m <= 12;m++){if(m==4||m==6||m==9||m==11)dmax=30;else if(m==2 && ((y%4==0&&y%100!=0)||y%400==0)==1)dmax=29;else if(m==2 && ((y%4==0&&y%100!=0)||y%400==0)==0)dmax=28;elsedmax=31;for(d=1;d<=dmax;d++){fprintf(pf,"%04d%02d%02d\n",y,m,d);flag++;}}}
}

主函数

这一部分主要实现了功能的选择以及对一些参数的初始化设置。

int main()
{int s1,s2;int ymin,ymax; FILE* pf = fopen("dict.txt", "w");printf("请选择字典模式:\n");printf("1:字符串字典 2:生日字典\n");scanf("%d",&s1);if(s1==1){printf("请输入字符串长度:\n");scanf("%d",&l);printf("请选择基础字符:\n");printf("1:大写字母 2:小写字母 3:数字\n");scanf("%d",&s2);if(s2==1)min=65, max=90;else if(s2==2)min=97, max=122;elsemin=48, max=57;printf("正在执行,请稍候...\n");print(n,l,pf);}else{printf("请输入初始年份:\n");scanf("%d",&ymin);printf("请输入终止年份:\n");scanf("%d",&ymax);printf("正在执行,请稍候...\n");printday(ymin,ymax,pf);} printf("执行成功,字典空间为%d",flag);return 0;
}

运行样例展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/917129.html

相关文章

写自己的密码字典

#新建一个数据数据库做pass[两个字段一个id&#xff0c;一个pss自己的密码]&#xff0c;数据库账号为root,密码为root,数据库为root #第一步导入库 import itertools as its import pymysql import hashlib #aa(datetime.datetime.now().strftime(‘%H:%M:%S.%f’)) #第二步&am…

kali社工密码字典生成

kali社工密码生成 Cupp是一款用Python语言写成的可交互性的字典生成脚本。尤其适合社会工程学&#xff0c;当你收集到目标的具体信息后&#xff0c;你就可以通过这个工具来智能化生成关于目标的字典。kali2021 系统集成了 无需安装一&#xff0c;打开终端 输入cupp 说明&#…

python 生成wifi密码字典_python生成密码字典的方法

这里我使用的是python27 主要用的是我之前博文里提到的itertools循环迭代的模块&#xff0c;用这个模块可以省不少事 首先要调用itertools import itertools as its 然后将字典需要的元素(或者说是关键字)赋给word变量 我们这里假设密码是纯数字&#xff0c;所以元素就是123456…

字典爆破php,密码字典 渗透测试字典 爆破字典

密码字典 渗透测试字典 爆破字典 下载地址: https://www.lanzous.com/b00n7iwqh 下载地址2:github.com/ddosi/hack 密码:ddosi.com 解压密码: www.ddosi.com 下图列出fuzz字典中的随机四个密码字典 该字典主要包括以下内容: # 内容: 1. Port # 出现频率较高的端口号,平时我是…

java生成密码字典

密码字典 话不多说全是干货 话不多说全是干货 /*** 密码字典*/ public class DictionarySeek {//密码可能会包含的字符集合private static char[] fullCharSource { 1,2,3,4,5,6,7,8,9,0,a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z,A,…

密码字典生成工具:crunch

现在网络安全的设备层出不穷&#xff0c;各种网络安全设备不管是对于内网还是对于外网的防护达到了细致入微。社会工程学作为渗透中非常重要的一环&#xff0c;有着非常大的威力&#xff0c;社会工程学最重要的就是密码的暴力破解&#xff0c;暴力破解最重要的就是密码字典。字…

python生成密码字典

系列文章目录 文章目录 系列文章目录前言一、密码字典二、字典生成1.生成6位数小写字母数字密码字典2.选择模式运行 总结 前言 一、密码字典 所谓密码字典&#xff0c;主要是配合解密使用&#xff0c;一般情况用来暴力破解密码&#xff0c;是由指定字符排列组合组成的文本文件…

密码字典

密码字典&#xff0c;主要是配合密码破译软件所使用&#xff0c;密码字典里包括许多人们习惯性设置的密码&#xff0c;这样可以提高密码破译软件的密码破译成功率和命中率&#xff0c;缩短密码破译的时间&#xff0c;当然&#xff0c;如果一个人密码设置没有规律或很复杂&#…