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

📄 cryption.cpp

📁 VIGENERE是法国的密码专家
💻 CPP
字号:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>
char convert(int a)
{
	char c;
	c=a;
	return c;
}
int convert2(char c)
{
	int a;
	a=c;
	return a;
}
void main()
{
	int flag1=0,flag2=0;
	double c=0;
	FILE *pw,*kw,*sw;
	char p_letter,k_letter,s_letter,pwfn[10],kwfn[10],swfn[10];
	printf("输入明文所在文件名(mingwen.txt):");
	scanf("%s",pwfn);
	printf("输入密钥所在文件名(miyue.txt):");
	scanf("%s",kwfn);
	printf("输入密文所在文件名(miwen.txt):");
	scanf("%s",swfn);
	pw=fopen(pwfn,"r");
	if(pw==NULL)
	{
		printf("CANNOT OPEN PW FILE!");
		exit(0);
	}
	kw=fopen(kwfn,"r");

	if(kw==NULL)
	{
		printf("CANNOT OPEN KW FILE!");
		exit(0);
	}
	sw=fopen(swfn,"w");
	if(sw==NULL)
	{
		printf("CANNOT OPEN SW FILE!");
		exit(0);
	}
	
	while(!feof(pw))
	{
		p_letter=char(fgetc(pw));
		if(feof(pw))
			break;
		if(isalpha(p_letter))
		{
			if(isupper(p_letter))
				p_letter=p_letter+32;
		}
		else
		{
			if(isspace(p_letter))
				p_letter=fgetc(pw);			
		}
		
		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(p_letter-97+k_letter-97,26)+97;
		s_letter=convert2(c);
		fputc(s_letter,sw);
	}
	fclose(sw);
	fclose(kw);
	fclose(pw);
}

⌨️ 快捷键说明

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