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

📄 004.cpp

📁 加密解密程序,把明玛与密匙进行一定的操作得到密码
💻 CPP
字号:
// 004.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream.h"
#include "string.h"

//移位密码加密
void Encrypt()
{
	int n;
	int k;
	char p[100];
	cout<<"输入循环位移的字符个数:"<<endl;
	cin>>k;
	cout<<"输入要加密的字母个数:"<<endl;
	cin>>n;
	cout<<"输入以小写表示的明文字母:"<<endl;
	for(int i=0;i<n;i++)
		cin>>p[i];
	cout<<"输出加密后以大写字母表示的密文:"<<endl;
	for(i=0;i<n;i++)
	{
		if(p[i]+k%26<'a')              //当字母移位后ASC||码小于'a'时,p[i]=p[i]+k%26-6.
		{
			p[i]=p[i]+k%26-6;
			cout<<p[i];
		}
		else if(p[i]+k%26>'z')         //当字母移位后ASC||码大于'z'时,p[i]=p[i]+k%26-58.
		{
			p[i]=p[i]+k%26-58;
			cout<<p[i];
		}
		else                      //当字母移位后ASC||码在'a'与'z'之间时,p[i]=p[i]+k%26-32.
		{
			p[i]=p[i]+k%26-32;
			cout<<p[i];
		}
	}
		cout<<endl;
		cin.get();
}
//移位密码解密
void Decode()
{
	int n;
	int k;
	char p[100];
	cout<<"输入循环位移的字符个数:"<<endl;
	cin>>k;
	cout<<"输入要解密的字母个数:"<<endl;
	cin>>n;
	cout<<"输入以大写字母表示的密文:"<<endl;
	for(int i=0;i<n;i++)
		cin>>p[i];
	cout<<"输出解密后以小写字母表示的明文:"<<endl;
	for(i=0;i<n;i++)
	{
		if(p[i]+k%26<'A')               //当字母移位后ASC||码小于'A'时,p[i]=p[i]+k%26+58.
		{
			p[i]=p[i]+k%26+58;
			cout<<p[i];
		}
		else if(p[i]+k%26>'Z')         //当字母移位后ASC||码大于'Z'时,p[i]=p[i]+k%26+6.
		{
			p[i]=p[i]+k%26+6;
			cout<<p[i];
		}
		else                         //当字母移位后ASC||码在'A'与'Z'之间时,p[i]=p[i]+k%26+32.
		{
			p[i]=p[i]+k%26+32;
			cout<<p[i];
		}
	}
		cout<<endl;
		cin.get();
}

void main()
{	
	int sign=1;
	int z;
	while(sign==1)
	{
		cout<<"加密----1,解密----2,退出----0 :"<<endl;
		cin>>z;
		switch(z)
		{
			case 0: sign=0;
					break;
			case 1: Encrypt();
					cin.get();
					break;
			case 2: Decode();
					cin.get();
					break;
			default: cout<<"input error!"<<endl;
		}
	}	
}

⌨️ 快捷键说明

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