Bu konuyu okuyanlar

C Dilinde Metin Şifreleme

Şifreleme Nedir? Şifreleme Bilimi (Kriptoloji) Ne İşe Yarar? C Programlama Dilinde Şifreleme Nasıl Yapılır?

Günümüzde teknolojinin hızla gelişmesine bağlı ortaya çıkan olumsuzluklardan biride mahremiyetin ihlal edilmesidir. Gerek devletler, gerek küçüklü büyüklü şirketler, gerekse kişiler kendi mahremiyetleri için bazı dosyalarını şifreleme ihtiyacı duyarlar.

2015031623224726472.jpg


Bu ihtiyaçlara bağlı olarak yüzlerce şifreleme algoritmaları geliştirildi. C dili dersleri serisinin bu dersinde c programlama dilinde herkesin yapabileceği basit bir metin şifreleme ve şifre çözme
tekniği göstereceğiz.

Uygulayacağımız bu teknikte kullanıcıdan alınan metni bir matris içerisine soldan sağa yerleştireceğiz. Daha sonra matrisin elemanlarını yukarıdan aşağıya boşlukları ihmal ederek alıp şifreli metnimiz olarak kaydedeceğiz.

Şifreyi çözerken ise şifreli metni matrise soldan sağa yerleştireceğiz. Sonrasında ise metni yukarıdan aşağıya okuyarak çözülmüş metni elde edeceğiz. Bu basit yöntemde hesaplamamız gerekenler metnin uzunluğu ve metnin uzunluğuna bağlı olarak kullanacağımız kare matrisin boyutlarını tespit etmek olacaktır.

!!Not: Kodları düzenli olarak koymama rağmen sola yaslandı. Kodların renkli ve düzenli hali için buraya tıklayın.


Örnek: C dilinde basit metin şifreleme yöntemi

Kaynak Kod:


#include <stdio.h>

int main()
{
static int i,a,boyut,j,uzunluk,b;
char cozulmusmetin[200],metin[200],matris[100][100],sifrelimetin[200];
printf("Sifrelenecek metni giriniz :"); gets(metin);
while(metin)
{
i++;
}
uzunluk=i;
printf("Metnin uzunlugu : %d\n",i); //www.pubtekno.com
while(boyut*boyut<i)
{
boyut++;
}
for(i=0;i<boyut;i++)
{
for(j=0;j<boyut;j++)
{
matris[j]=metin[a];
a++;
printf("%c\t",matris[j]);
}
printf("\n");
}
for(i=0;i<boyut;i++)
{
for(j=0;j<boyut;j++)
{
sifrelimetin=matris[j];
b++;
}
}
printf("\nSifreli Metin : ");
for(i=0;i<boyut*boyut;i++)
{
if(sifrelimetin!='\0' && sifrelimetin!=' ')
{
printf("%c",sifrelimetin); // Pubtekno
}
}
a=0; b=0;
printf("\n");
for(i=0;i<boyut;i++)
{
for(j=0;j<boyut;j++)
{
matris[j]=sifrelimetin[a];
a++;
printf("%c\t",matris[j]);
}
printf("\n");
}
for(i=0;i<boyut;i++)
{
for(j=0;j<boyut;j++)
{
cozulmusmetin=matris[j];
b++;
}
}
printf("\nSifresi cozulmus metin : ");
for(i=0;i<boyut*boyut;i++)
{
if(cozulmusmetin!='\0')
{
printf("%c",cozulmusmetin);
}
}
return 0;
}


Kod Analiz :

- İlk olarak kullanıcıdan metni alıp metin adlı char tipindeki dizimize kaydettik.

- Daha sonra while(metin) derken metnin o anki elemanının ascii tablosundaki değeri 0 dan büyükse yani null karakterine eşit değilse i değişkenini 1 arttırdık. Böylece metnin uzunluğu bulmuş olduk.

- Metnin uzunluğuna en yakın tam kare sayıyı bulup boyut değişkenine atadık.

- Metnimizi matrise soldan sağa olacak şekilde yerleştirdik.

- Matrisimizin elemanlarını yukarıdan aşağıya okuyarak şifreli metin dizimize aktardık. Burada boşlukları ve null karakterini almadığımıza dikkat edin. Sonrasında şifreli metnimizi ekrana yazdırdık.

- Şifreli metni çözerken yukarıda anlattığımız gibi bu seferde şifreli metni matrise sağdan sola doğru yerleştirip, yukarıdan aşağıya okuyarak şifresi çözülmüş metni elde ettik ve ekrana yazdırdık.

Aşağıda "pubtekno c dili dersleri" metni ve "pubtekno" metni için yaptığımız şifrelemeyi görüyorsunuz. Gördüğünüz gibi şifreli metnin herhangi bir şifre çözme tekniği kullanılmadan anlaşılmasına imkan yok.

Ekran Görüntüsü :

Ekran%2BG%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B%2528217%2529.png


Ekran%2BG%25C3%25B6r%25C3%25BCnt%25C3%25BCs%25C3%25BC%2B%2528216%2529.png


C dili dersleri serisinin bu dersinde c programlama dilinde basit şekilde metin şifrelemeyi ve şifrelenmiş metni çözmeyi gösterdik.

Ayrıca "Şifreleme Bilimi (Kriptoloji) Nedir?" adlı makalede ilginizi çekebilir.

"C Dilinde Metin Şifreleme" adlı bu makaleyi beğendiyseniz lütfen yorum yapmayı ve paylaşmayı unutmayınız.

Kaynak: Pubtekno
 
Son düzenleme:

SDN Son Haberler

Son mesajlar

Üst