强密码生成器(C++)

本文分享了一个使用C++编写的强密码生成器,程序包含多种模式,可用于生成安全的密码。代码已提供,可在评论区提问,作者会进行解答。同时,文章鼓励读者点赞、评论和转发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       这几天闲着没事又想着用C++做一个密码生成器,方便我以后生成不容易攻破密码,并且我还出了几种模式,感兴趣的可以下载下来看看。

上代码

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdlib>
#include<ctime>
#include<conio.h>
#include<windows.h>
#define LL long long
using namespace std;
string s11;
char sf[27]={' ','~','!','@','#','$','%','^','&','*','_','+','-','=','/','(',')','{','}',';',':','[',']','<','>',',','.'};
void End(int tag){
	if(tag==1)
		printf("\n生成成功!已为您保存到当前文件夹中的 password.txt ,请及时下载,重新生成密码会替换原来的密码!\n");
	else
		printf("\n生成成功!已为您保存到当前文件夹中的 password.csv ,请及时下载,重新生成密码会替换原来的密码!\n");
}
int R(int x){
	return ((LL)rand()*(LL)rand())%(LL)x+1ll;
}
void sj(){
	printf("您选择的类型:纯随机强密码\n\n");
	printf("请输入密码位数:");
	int n;
	scanf("%d",&n);
	system("cls");
	char ch='.',s[5];
	string ri[5];
	for(int i=0;i<=4;i++)
		s[i]=' ',ri[i]="  ";
	int now=1,g=4;
	string ss[5];
	ss[1]="数字";
	ss[2]="大写字母";
	ss[3]="小写字母";
	ss[4]="特殊符号  ~ ! @ # $ % ^ & * _ + - = ? / ( ) { } ; : [ ] < > , .";
	int flag=1;
	while(ch!='k'){
		printf("您选择的类型:纯随机强密码\n");
		printf("您输入密码位数:%d\n\n",n);
		printf("\n\n请选择所包含的字符类型(可多选):\n w s :上下控制\n j :确定选择此项(再次输入j取消选择)\n k :完成选择\n n :");
		if(flag==0)
			printf("取消"); 
		printf("全选\n m :反选\n (请先将输入模式调整为英文)\n\n");
		s[now]='>';
		for(int i=1;i<=g;i++)
			printf("   %c %s  %s\n",s[i],ri[i].c_str(),ss[i].c_str());
		ch=getch();
		system("cls");
		switch(ch){
			case 'w':{
				s[now]=' ';
				now--;
				if(now==0)
					now=g;
				break;
			}
			case 's':{
				s[now]=' ';
				now++;
				if(now==g+1)
					now=1;
				break;
			}
			case 'j':{
				if(ri[now]=="  ")
					ri[now]="√";
				else
					ri[now]="  ";
				flag=1;
				break;
			}
			case 'k':break;
			case 'n':{
				if(flag==1)
					for(int i=1;i<=g;i++)
						ri[i]="√",flag=0;
				else
					for(int i=1;i<=g;i++)
						ri[i]="  ",flag=1;
				break;
			}
			case 'm':{
				int ggg=0;
				for(int i=1;i<=g;i++)
					if(ri[i]=="  ")
						ri[i]="√",ggg++;
					else
						ri[i]="  ";
				flag=1;
				if(ggg==g)
					flag=0;
				break;
			}
			default:{
				printf("请输入'w','s','j','k','n'or'm'  谢谢合作!");
				Sleep(1000);
				system("cls");
				break;
			}
		}
	}
	system("cls");
	printf("您选择的类型:纯随机强密码\n");
	prin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值