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

恺撒加密—插入加密

恺撒加密

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

#include <iostream>
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 <iostream>
using namespace std;
#include <cstring>
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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力发光的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值