KONU : C Konsol Uygulamalar - c konsolda metin şifreleme uygulaması
ETİKETLER: c şireleme - c şifre - c şifre koyma - c şifre işlemi - c metin şifreleme
#include < stdio.h >
#include < conio.h >
int main()
{
FILE *fptr1;
FILE *fptr2;
int sec;
//şifrelenmek istenen metinin bulunduğu dosya
char dosya_adi1[50] ="TestFile1.txt";
//şifrelenen metnin yazılacağı dosya
char dosya_adi2[50] ="TestFile2.txt";
//dosyalardan karakterleri bire birer çekerken
//kullanılacak değişkeler
char temp, son;
basla:
printf("1 - Sifrele\n2 - Sifre coz\n3 - Cikis\n\nSeciniz ? : ");
scanf("%d", &sec);
switch(sec)
{
case 1://Şifrelem seçeneği seçilmiş ise
{
//şifrelenecek metnin bulunduğu dosyayı aç
if((fptr1 = fopen(dosya_adi1, "r")) == NULL)
{
printf("Dosya bulunamadi!\n\n-------------\n\n");
goto basla; //yeniden başa dön
}
else //Eğer dosya açılmış ise dosyayı işle
{
int i=0;
fptr2 = fopen(dosya_adi2, "w");
while(!feof(fptr1)) //sayfa sonuna gelene kadar devam et
{
//Eğer alınan data bir karakter ise bunu temp e ata
if(fscanf(fptr1, "%c", &temp)==1)
{
//şifrelemede noktalama işareti istenmiyor
//Bundan dolayı sadece harf kullanılacak
if (temp == 'a' || temp == 'z' || temp == 'A' ||
temp == 'Z' || temp == ' ' || temp == '\n' || temp == '\r')
son = temp;
else
{
//eğer karakter harf ve a ile z arasında ise
//bu değeri 1 ile şifrele
son = (temp ^ 1);
}
//şifrelenen karakteri ikinci dosyaya yaz
fprintf(fptr2, "%c", son);
}
}
// iki dosyayı da kapat
fclose(fptr1);
fclose(fptr2);
//konsola işlem tamamlandı yaz
printf("Sifreleme tamamlandi.\n\n-------------\n\n");
}
//yeniden başa dön
goto basla;
break;
}
case 2://Eğer işlem şifre çözme ise
{
//şifrelenmiş olan metin al
if((fptr1 = fopen(dosya_adi2, "r")) == NULL)
{
//dosya bulunamadıya konsola dosya bulunamadı yaz
printf("Dosya bulunamadi!\n\n-------------\n\n");
goto basla; //tekrar basa dön
}
else //Eğer şifrelenmiş dosya bulunduysa
{
//şifresi çözünen metnin yazılacağı dosyayı aç
fptr2 = fopen(dosya_adi1, "w");
while(!feof(fptr1))//sayafa sonuna kadar git
{
//dosyadan okunan karakter sayısı bir ise
if(fscanf(fptr1, "%c", &son)==1)
{
//şifrelemede noktalama işareti istenmiyor
//Bundan dolayı sadece harf kullanılacak
if (son == 'a' || son == 'z' || son == 'A' ||
son == 'Z' || son == ' ' || son == '\n' || son == '\r')
temp = son;
else
{
//şifrelenmiş datayu tekrar eski haline getir
temp = (son ^ 1);
}
//şifresi çözünen metni sayfaya yaz
fprintf(fptr2, "%c", temp);
}
}
//açık olan iki dosyayı kapat
fclose(fptr1);
fclose(fptr2);
//konsola şifre çözme işlemi tamamlandı yaz
printf("Sifre cozme tamamlandi.\n\n-------------\n\n");
}
goto basla; //tekra başa dön
break;
}
case 3: //Eğer çıkış seçilmiş ise
{
return 0; //sıfır dön ve switch den çıksın
break;
}
default:
{
//bir hata olmuş ise (yanlış değer girilmiş ise)
printf("\nYanlis giris yaptiniz.\n\n-------------\n\n");
goto basla;
}
}
getch();
return 0;
}