⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encryption.cpp

📁 VIGENERE是法国的密码专家
💻 CPP
字号:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>

int convert(char c)
{
	int a;
	a=c;
	return a;
}
void main()
{
	int flag1=0,flag2=0;
	double c=0;
	FILE *nw,*kw,*sw;
	char n_letter,k_letter,s_letter,nwfn[10],kwfn[10],swfn[10];
	printf("输入密文所在文件名(miwen.txt):");
	scanf("%s",swfn);
	printf("输入密钥所在文件名(miyue.txt):");
	scanf("%s",kwfn);
	printf("输入解密后明文所在文件名(jiemi.txt):");
	scanf("%s",nwfn);
	sw=fopen(swfn,"r");
	if(sw==NULL)
	{
		printf("CANNOT OPEN SW FILE!");
		exit(0);
	}
	kw=fopen(kwfn,"r");

	if(kw==NULL)
	{
		printf("CANNOT OPEN KW FILE!");
		exit(0);
	}
	nw=fopen(nwfn,"w");
	if(nw==NULL)
	{
		printf("CANNOT OPEN NW FILE!");
		exit(0);
	}
	
	while(!feof(sw))
	{
		s_letter=char(fgetc(sw));
		if(feof(sw))
			break;
				
		k_letter=char(fgetc(kw));
				if(feof(kw))
		{
			rewind(kw);			
			k_letter=char(fgetc(kw));
		}
		if(isalpha(k_letter))
		{
			if(isupper(k_letter))
				k_letter=k_letter+32;
		}
		else
		{
			if(isspace(k_letter))
				k_letter=fgetc(kw);			
		}

		c=fmod((s_letter-97)-(k_letter-97),26);
		while(c<0)
		{
			c=c+26;
		}
		c=c+97;
		n_letter=convert(c);
		fputc(n_letter,nw);		
	}
	fclose(sw);
	fclose(kw);
	fclose(nw);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -