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

📄 vigenere.cpp

📁 Vigenere encryption c++
💻 CPP
字号:
#include <iostream>
#include <conio.h>
using namespace std;

class cuvinte
{
	public:
	unsigned int size;
	int *mesaj;

	cuvinte()
	{
		unsigned int i;
		char c;
		cout<<"Dati lungimea sirului "; cin>>size;
		mesaj = new int[size+1];
		cout<<"Tastati sirul"<<endl;
		for (i=0;i<size;i++) 
		{
			c=getch();
			cout<<c;
			mesaj[i]=c-97;
		}
	}

	cuvinte(int x)
	{
		size = x;
		mesaj = new int[size+1];
	}

	void afisare()
	{
		cout<<endl;
		char c;
		unsigned int i;
		for (i=0;i<size;i++) 
		{
			c=mesaj[i]+97;
			cout<<c;
		}

		getch();
	}

	~cuvinte()
	{
	} 
};

void codare_vigenere (cuvinte mesaj, cuvinte cheie)
{
	cuvinte p(mesaj.size),codat(mesaj.size);
	unsigned int i;
	for (i=0;i<p.size;i++) p.mesaj[i]=cheie.mesaj[i%cheie.size];
	
	for (i=0;i<=codat.size; i++) 
	{
		codat.mesaj[i]=mesaj.mesaj[i]+p.mesaj[i];
		if (codat.mesaj[i]>26) codat.mesaj[i]=codat.mesaj[i]-27;
	}

	codat.afisare();
}

void decodare_vigenere (cuvinte mesaj, cuvinte cheie)
{
	cuvinte p(mesaj.size),decodat(mesaj.size);
	unsigned int i;
	for (i=0;i<p.size;i++) p.mesaj[i]=cheie.mesaj[i%cheie.size];
	
	for (i=0;i<=decodat.size; i++) 
	{
		decodat.mesaj[i]=mesaj.mesaj[i]-p.mesaj[i];
		if (decodat.mesaj[i]<0) decodat.mesaj[i]=27+decodat.mesaj[i];
	}

	decodat.afisare();
}

void main()
{
	cout<<"Dati mesajul"<<endl;
	cuvinte mesaj;
	cout<<endl;
	cout<<"Dati cheia"<<endl;
	cuvinte cheie;
	cout<<endl;

	cout<<"Tastati 1 pt codare, 2 pt decodare";
	cin>>i;
	
	if (i==1) codare_vigenere (mesaj,cheie);
	if (i==2) decodare_vigenere (mesaj,cheie);


}

⌨️ 快捷键说明

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