C ve C++ Projeleri Önerileri

c++ da şifreleme projesini çözemiyorum
  1. Verilen bir metin dosyasını okuyarak dosya içerisindeki tüm harfleri Key-based Encryption (Symmetric Encryption) metodu kullanarak şifreleyen ve bunu bir dosyaya yazan bir program yazınız. Aynı şekilde şifrelenmiş bir dosyayı alıp yukarıda yapılan şifrelemenin tersi yapılarak şifreyi çözen programı da yazınız. Sonuçta yazacağınız program şifreleyici ve şifre çözücüden oluşacaktır.
 
belki birininde işine yarar /*Verilen bir metin dosysını okuyarak dosya içerisindeki tüm harfleri Key Based
Encryption(Symmetric Encryption) metodu kullanarak şifreleyen ve bunu bir dosyaya
yazan bir program yazınız.Aynı şekilde şifrelenmiş bir dosyayı alıp yukarıda yapılan
şifrelemenin tersi yapılarak şifreyi çözen programıda yazınız.Sonuçta yazacagınız
program ŞİFRELEYİCİ VE ŞİFRE ÇÖZÜCÜDEN OLUŞACAKTIR. */
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
void dosya_olustur(char []);
void sifrele(char []);
void cozumle(char []);
void diz(void);
struct harf
{
char deger;
int s_deger;
} harf[26];
int main()
{
diz();
int x=5;
char dosyaAdi[20];
while(x)
{
cout<<" 1) DOSYA OLUSTURMA"<<endl;
cout<<" 2) DOSYAYi SiFRELEME"<<endl;
cout<<" 3) SiFRELi DOSYAYi ACMA"<<endl;;
cout<<" 4) CiKiS"<<endl;
cin>>x;
if(x==4)break;
switch(x)
{
case 1:
cout<<"Olusturulacak dosyanin adini giriniz:"<<endl;
cin>>dosyaAdi;
dosya_olustur(dosyaAdi);
break;
case 2:
cout<<"Sifrelenecek dosyanin adini giriniz:"<<endl;
cin>>dosyaAdi;
sifrele(dosyaAdi);
break;
case 3:
cout<<"Sifresi cozulecek dosya adini giriniz:"<<endl;
cin>>dosyaAdi;
cozumle(dosyaAdi);
break;
default:
cout<<"Yanlis girdiniz..."<<endl;
}
}
return 0;
}
void diz()//harfleri sıralama fonsiyonu
{
char e='a';
int a=0;int b=1;

for(int i=0;i<26;i++)
{
harf.deger=e;
harf.s_deger=b;
e++;//aski kodlari ile ilgli

b++;
}
}
void dosya_olustur(char dosyaAdi[])//dosya oluşturma fonksiyonu
{
char metin[100];
ofstream m_dosya;
m_dosya.open(dosyaAdi);
if(m_dosya.fail())
{
cout<<"Dosya acilamadi!";
exit(1);
}
cout<<"Dosya acildi verileri yazabilirsiniz."<<endl<<endl;
m_dosya.close();
}

void sifrele(char dosyaAdi[])//metni şifreleme fonksiyonu
{
char e,x,sifre[8];
int j,i,k,s,sfr[8];
ifstream dosya;
dosya.open(dosyaAdi);
if(dosya.fail())
cout<<"Dosya acilamadi!"<<endl;
cout<<"Sifreyi giriniz:"<<endl;
cin>>sifre;
for(j=0;j<8;j++)
for(i=0;i<26;i++)
{
if(sifre[j]==harf.deger)//harfi kaydediyo
sfr[j]=harf.s_deger;//sifredeki sayıları kaydediyo000
}
j=0;

dosyaAdi="sifreli.txt";
ofstream dosya1;
dosya1.open(dosyaAdi);
while(e=dosya.peek()!=EOF)
{
dosya.get(e);
for(i=0;i<26;i++)
if(e==harf.deger)
{
s=(harf.s_deger+sfr[j])%26;
for(k=0;k<26;k++)
{
if(s==harf[k].s_deger)
x=harf[k].deger;
}
dosya1.put(x);
if(j<7) j++;
else
j=0;
}
}
cout<<"dosya basari ile sifrelendi."<<endl;
dosya.close();
dosya1.close();
}
 

Forum istatistikleri

Konular
129,466
Mesajlar
927,183
Kullanıcılar
452,029
Son üye
Mertopk

Yeni konular

Çevrimiçi üyeler

Geri
Üst