循环的经典应用——暴力破解密码

在这里插入图片描述
#include
#include <windows.h>
#include

using namespace std;

int main(void) {
string password; //密码

while (1) {
	cout << "请输入密码:";  //忘了写字符串的头文件
	cin >> password;
	if (password == "002345") {
		break;
	} else {
	  cout << "密码错误重新输入!!!" << endl;
	} 
}

在这里插入图片描述
//打印菜单
cout << “1.hellWord” << endl;
cout << “2.name” << endl;
cout << “3.password” << endl;

system("pause");
return 0;

}

//输入密码 打印菜单

#include
#include <Windows.h>

using namespace std;

int main(void) {

char digital[32];  //数字  0 1 2 3 4 5 6 7 8 9
char password[32]; //密码
char p=0;  //p需要初始化 赋值为零 不然程序直接奔溃
int n = 10;


//循环打印多种可能
for (int j=0; j<n; ++j) {
	digital[p++] = '0'+j;
}

//嵌入式循环破解多位密码
for (int p1=0; p1<n; ++p1) {
	for (int p2=0; p2<n; ++p2) {
		for (int p3=0; p3<n; ++p3){
			for (int p4=0; p4<n; ++p4) {
				for (int p5=0; p5<n; ++p5) {
					for (int p6=0; p6<n; ++p6) {
						password[0] = digital[p1];
						password[1] = digital[p2];
						password[2] = digital[p3];
						password[3] = digital[p4];
						password[4] = digital[p5];
						password[5] = digital[p6];
						password[6] = '\0';
						cout << password << endl;
					}
				}
			}
		}
	}
}

return 0;

}
//密码 共6位数 每位数有十种可能 0 1 2 3 4 5 6 7 8 9

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
crack.cpp
#include

using namespace std;

int main(void) {
char pwd[7];
char dict[64]; //10+26+26+1 = 63;
char tmp[32];
int index = 0;

for (int i=0; i<10; i++) {
	dict[index++] = '0' + i;
}

/*
for (int i=0; i<26; i++) {
	dict[index++] = 'a' + i;
}

for (int i=0; i<26; i++) {
	dict[index++] = 'A' + i;
}

dict[index++] = '_';
*/
		
dict[index] = '\0';
int n = index; // 字符个数

for (int p1=0; p1<n; p1++) {
	for (int p2=0; p2<n; p2++) {
		for (int p3=0; p3<n; p3++) {
			for(int p4=0; p4<n; p4++) {
				for(int p5=0; p5<n; p5++){
					for (int p6=0; p6<n; p6++) {
						tmp[0] = dict[p1];
						tmp[1] = dict[p2];
						tmp[2] = dict[p3];
						tmp[3] = dict[p4];
						tmp[4] = dict[p5];
						tmp[5] = dict[p6];
						tmp[6] = '\0';
						cout << tmp << endl;
					}
				}
			}
		}
	}
}

return 0;

}

在控制台:
crack.exe | client.exe
在这里插入图片描述

发布了73 篇原创文章 · 获赞 0 · 访问量 9898

猜你喜欢

转载自blog.csdn.net/weixin_45399178/article/details/101315841