好久没有来博客园了,也没写自己的博客,我写的博客一般都是老师布置的作业,然后我写完发在博客园。毕竟我是真的懒,平时都不怎么刷程序,加上近期都在准备考研,也挺忙的。
毕竟老师布置的作业也不算很难,发在博客园这么高大上的平台我也有点压力,希望各位大佬能不吝赐教!
这个程序是关于一个读取多个用户密码的文件,然后正确输入密码之后给出随机秘钥然后输入加密后的口令登陆的程序。这里我的加密算法非常简单,就是一个密码和随机数相加取余的算法。如果你们有意把算法弄的难一点可以在相应的代码部分进行修改,添加。
废话不多说,直接上代码。
#include<iostream>
#include<stdio.h>#include <stdlib.h>#include<fstream>#include<time.h>using namespace std; int main(){ FILE *fin = fopen("file.txt", "r"); /*假设文件名为file.txt*/ int kouling[100], i; for (i = 0; i < 100; i++) { fscanf(fin, "%d", &kouling[i]); } fclose(fin); int shurukl[5]; int newkl[5]; int shurunewkl[5]; int number[5]; cout<<"请输入密码:"; for(int i=0;i<5;i++) { cin>>shurukl[i]; } for(int p=0;p<20;p++) { for(int j=0;j<5;j++) { if(shurukl[j]!=kouling[p*5+j]) { continue; } else if(j==4) { if(shurukl[j]!=kouling[p*5+j]) { cout<<"密码输入错误,程序终止!"<<endl; break; } cout<<"密码输入正确!"<<endl; cout<<"随机数为:"; srand((unsigned)time(NULL)); for (int k=0; k<5; k++) { number[k]=rand()%10; printf("%d ", number[k]); } cout<<endl; for(int o=0;o<5;o++) { newkl[o]=(kouling[p*5+o]+number[o])%10; } for(int z=0;z<5;z++) { cin>>shurunewkl[z]; if(shurunewkl[z]!=newkl[z]) { cout<<"口令计算错误,程序终止"<<endl; break; } else if(z==4) { cout<<"口令输入正确,成功登陆!"<<endl; } } } } } return 0;}文件就是一个txt文件,内容如下
1 2 3 4 5
0 7 2 2 82 4 5 6 1文件大小设置的是100,也就是可以存有25个用户密码,如果需求更大,可以自行修改,我这里就是随便添一点举个例子。
程序运行结果如下图:
就这么多,晚安!