#include <iostream.h>
#include<fstream.h>
#include<iomanip.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
char* sifrele (char *metin, char *sifre) {
int t, dongu, metin_uzunlugu, sifre_uzunlugu;
int sifre_chr;
char aktar;
char *sifreli_metin;
metin_uzunlugu = strlen(metin);
sifre_uzunlugu = strlen(sifre);
sifreli_metin = (char *)malloc(strlen(metin) + 1) ; // bir fazlası 0 koyacağız sonuna
dongu = 0;
for (t=0;t<metin_uzunlugu;t++){
sifre_chr = (char)metin[t] + (char)sifre[dongu];
sifre_chr = sifre_chr % 255;
aktar = (char)sifre_chr;
sifreli_metin[t] = (char)aktar;
dongu++;
if (dongu == sifre_uzunlugu) dongu = 0;
}
sifreli_metin[metin_uzunlugu] = 0; //metin sonu 10 dk uraştırdı
return sifreli_metin;
}
char* cozumle (char *sifreli_metin, char *sifre) {
int t, dongu, metin_uzunlugu, sifre_uzunlugu;
int sifre_chr;
char aktar;
char *cozulen_metin;
metin_uzunlugu = strlen(sifreli_metin);
sifre_uzunlugu = strlen(sifre);
cozulen_metin = (char *)malloc(strlen(sifreli_metin) + 1) ; // bir fazlası 0 koyacağız sonuna
dongu = 0;
for (t=0;t<metin_uzunlugu;t++){
sifre_chr = (char)sifreli_metin[t] - (char)sifre[dongu];
if (sifre_chr >255) sifre_chr = sifre_chr - 255;
aktar = (char)sifre_chr;
cozulen_metin[t] = (char)aktar;
dongu++;
if (dongu == sifre_uzunlugu) dongu = 0;
}
cozulen_metin[metin_uzunlugu] = 0; //metin sonu 10 dk uraştırdı
return cozulen_metin;
}
void main(){
char *metin;
char *sifre;
char *sifreli_metin;
char *cozulen_metin;
char in_char;
char f_ad[12];
metin = (char *)malloc(200);
sifre = (char *)malloc(50);
cout<<"Şifrelenecek metini giriniz: ";
cin>>metin;
cout<<"Şifreyi giriniz: ";
cin>>sifre;
cout<<"verileri kaydedecek dosya adını girin"<<endl;
cin>>f_ad;
sifreli_metin = sifrele(metin, sifre);
cout<<"Sifreli metin uzunlugu: "<<strlen(sifreli_metin)<<endl;
cout<<"Sifreli metin: "<<sifreli_metin<<endl;
cozulen_metin = cozumle(sifreli_metin, sifre);
cout<<"Cozulen metin uzunlugu: "<<strlen(cozulen_metin)<<endl;
cout<<"Cozulen metin: "<<cozulen_metin<<endl;
ofstream outdosya(f_ad);
if (outdosya.fail())
{
cout<<"dosya açılamadı";
exit(1);
}
outdosya<<"Sifreli metin "<<sifreli_metin<<endl;
outdosya<<"Cozulen metin "<<cozulen_metin<<endl;
outdosya.close();
ifstream indosya(f_ad);
if (indosya.fail())
{
cout<<"dosya açılamadı";
exit(1);
}
cout<<"dosya acıldı ve veriler yazılıyo"<<endl;
while (indosya.get(in_char))
{
cout<<in_char;
}
indosya.close();
free(sifre);
free(metin);
free(sifreli_metin);
free(cozulen_metin);
cin>>sifre;
}