两种常用的加密方式(c++实现)

恺撒加密—插入加密

恺撒加密

题目内容:
恺撒加密法加密规则是:将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换,对于字母表中最后的三个字母,可将字母表看成是首未衔接的。如字母c就用F来替换,字母y用B来替换,而字母Z用c代替。编程实现以下功能:输入一个字符串,将其加密后输出。
程序运行结果如下:
AMDxyzXYZ
dpgABCabc
输入格式:
一个字符串(不会超过20个字符,由26个英文字母构成)
输出格式:
一个字符串
输入样例:
AMDxyzXYZ
输出样例:
dpgABCabc

#include 
using namespace std;
int main()
{
	char a[20];
	int i;
	cin>>a;
	i=0;
	while(a[i]!='\0')
	{
		if(a[i]>='A'&&a[i]<='Z')
		{
			a[i]=(a[i]-'A'+3)%26+'A';
			a[i]+=32;
		}
		else if(a[i]>='a'&&a[i]<='z')
		{
			a[i]=(a[i]-'a'+3)%26+'a';
			a[i]-=32;
		}
		i++;
	}
cout<<a<<endl;
system("pause");
return 0;
}

插入加密法

题目内容:
插入式加密是在明文字母中按照指定间隔插入另一些字母以形成密文。例如对明文china,在间隔为1的位置插入其它字母序列中的字母a,b,c,d,e,就变成密文cahbicndae;间隔为2时的密文为chainbac,要求输入明文和间隔,从存放其它字母的序列(仅包含a,b,c,d,e)中依次取出对应字母插入到明文中,如果其它字母序列的字母取完,则从头再取,要求密文中最后一个字母一定是其它字母序列中的字母。
输入格式:
一个是明文字符串,一个是表示间隔的正整数。明文(不超过30个字符),间隔的取值范围是(1~5)。
输出格式:
密文(不超过60个字符)
输入样例:
china
1
输出样例:
cahbicndae

#include 
using namespace std;
#include 
int main()
{
	string a[5]={"a","b","c","d","e"};
	string a1,a2;
	int n,p;
	cin>>a1;
	cin>>n;
	int len=a1.length();
	if(len%n==0)
		p=len/n;
	else
		p=len/n+1;
	for(int i=0;i<p;i++)
	{
		a2+=(a1.substr(i*n,n)+a[i%5]);
	}
	cout<<a2<<endl;
	system("pause");
	return 0;
}

你可能感兴趣的:(刷题,c++)