//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
char* enc_me(char *ch,int &key)
{
char *str=new char[100];
int i = 0, j = 0;
char p = 3, q = 5;
int ct = 0;
while(ch[i])
{
str[j] = ((ch[i]+q)*p)%93 + 33;
j++;
ct = ch[i] % 3;
while(ct--)
{
str[j] = ((ch[i] + j)^2 + ct)%93 + 33;
j++;
}
p = str[i];
q = ch[i];
i++;
}
str[j] = 0;
return str;
}
char* enciphering(char *ch,int &key)
{
char *str=new char[100];
int i=0,x;
bool decide=true;
while(ch[i])
{
if(ch[i]>='a'&&ch[i]<='z')
{
x=ch[i]+i+key+1;
while(decide)
{
if(x>'z')
x-=26;
else
decide=false;
}
decide=true;
str[i]=x;
}
else
str[i]=ch[i];
i++;
}
return str;
}
char* deciphering(char *ch,int &key)
{
char *str=new char[100];
int i=0,x;
bool decide=true;
while(ch[i])
{
if(ch[i]>='a'&&ch[i]<='z')
{
x=ch[i]-i-1-key;
while(decide)
{
if(x<'a')
x+=26;
else
decide=false;
}
decide=true;
str[i]=x;
}
else
str[i]=ch[i];
i++;
}
return str;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int key = 10,count;
char *str=new char[100];
AnsiString ss = "a";
strcpy( str , Edit1->Text.c_str());
Edit2->Text = AnsiString(enc_me(str,key));
Edit3->Text = AnsiString(deciphering(Edit2->Text.c_str(), key));
}
//---------------------------------------------------------------------------