加密程序(爆戳)(违规紫衫)
  • 板块灌水区
  • 楼主classmatechen
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/7 14:44
  • 上次更新2024/10/7 16:24:05
查看原帖
加密程序(爆戳)(违规紫衫)
1496446
classmatechen楼主2024/10/7 14:44

DevC++ 爆戳了

#include<bits/stdc++.h>
#define elif else if
using namespace std;
char hex[17]="0123456789abcdef";
short dec[128]={
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0,
	 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0,10,11,12,13,14,15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
	 
	 
};
string encrypt(string n){
	string x;
	for(auto i:n){
		x+=hex[(i/16+3)%16];
		x+=hex[(i%16+3)%16];
	}
	for(int i=0,j=x.size()-1;i<j;i++,j--){
		swap(x[i],x[j]);
	}
	n="";
	for(int i=0;i<x.size();i+=2){
		n+=char(dec[x[i]]*16+dec[x[i+1]]);
	}
	return n;
}
string decrypt(string n){
	string x;
	for(auto i:n){
		x+=hex[(i/16+13)%16];
		x+=hex[(i%16+13)%16];
	}
	for(int i=0,j=x.size()-1;i<j;i++,j--){
		swap(x[i],x[j]);
	}
	n="";
	for(int i=0;i<x.size();i+=2){
		n+=char(dec[x[i]]*16+dec[x[i+1]]);
	}
}
int secret_key(char n[]){
	int skey=1;
	for(int i=0;n[i]!=0;i++){
		skey=skey*int(abs(n[i]))%10007;
	}
	return skey;
}
int main(int argc,char **argv){
	char fn[260];
	int skey;
	cout<<"请输入您要加密的文件路径(不能包含空格):";
	cin>>fn;
	cout<<"请输入文件验证码:";
	cin>>skey;
	if(skey!=secret_key(fn)){
		system("cls");
		cout<<"验证码错误\n";
		system("pause");
		return 0; 
	}
	system("cls");
	cout<<"正在操作";
	ifstream fin(fn);
	string n;
	string x;
	while(fin>>x){
		n=n+"\n"+x;
	}
	ofstream fout(fn,ios::trunc);
	fout<<encrypt(n);
	system("cls");
	cout<<"操作成功\n";
	system("pause");
	return 0;
}


2024/10/7 14:44
加载中...