奥义蛇皮走位之反复横跳(二)

断了今生、忘了曾经 提交于 2020-02-26 12:38:07

循环嵌套之暴力破解密码

//首先写一个登录程序
#include <iostream> 
#include <Windows.h> 
#include <string> 

using namespace std; 

int main (void){ 
	string pwd; 
	
	while (1) { 
		cout << "Please input your password: "; 
		cin >> pwd; 
	
		if (pwd == "000123") { 
			break; 
		} else {
			cout << "Password error." << endl; 
		} 
	}
	
	cout << "login success" << endl; 
	cout << "1. 注册" << endl; 
	cout << "2. 管理" << endl; 
	cout << "3. 查询" << endl; 
	cout << "4. 删除" << endl; 
	
	system("pause"); 
	return 0; 
}
//破解程序
#include <iostream> 

using namespace std; 

int main(void) { 
	char pwd[7]; 
	char dict[64]; //10+26+26+1 = 63; 
	char tmp[32]; 
	int index = 0; 
	
	//存储密码符号0-9
	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; 
 }

两个程序都生成后在Windows运行cmd控制台
输入命令:破解程序.exe | 登录程序.exe
注意:命令中.exe文件名称要和自己的一样

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!