Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Turkhackteam Under Ground
> Kriptografi - Şifreleme

Kriptografi - Şifreleme Şifreleme Ve Şifreleme Sistemleri Hakkında Her şey.


Python ile Sezar Şifreleme Algoritması

Kriptografi - Şifreleme

Yeni Konu aç Cevapla
 
Seçenekler
Alt 03-06-2018 15:30   #1
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
01/2016
Nereden
.
Mesajlar
Konular

Teşekkür (Etti): 121
Teşekkür (Aldı): 936


Python ile Sezar Şifreleme Algoritması



Python ile Sezar Şifreleme Algoritması



Adından da anlaşıldığı üzere bu algoritmayı Jul Sezar gönderdiği mesajların düşmanların tarafında ele geçirilirse o mesajı anlamaması için oluşturulmuştur. Bu algoritma en temel şifreleme olarak kabul edilmektedir. Günümüzde şifreleme için pek güvenli sayılmamaktadır. Çünkü çözme olasılığı 1/25 dır. Eğer şifreleme türü bilinmiyorsa bu daha zor olacaktır ama biliniyorsa en fazla 25 denemede şifre kırılacaktır. Günümüzde hiçbir şifreleme çeşidi kırılamaz değildir. Bazı şifreler 10 günde kırılırken bazı şifreler ise 100 yılda kırılabilir. Bir şifreyi kırma süreciniz, bilgisayarınızın gücüne göre değişecektir.

Sezar algoritması, ana mesajın her bir harfini belirtilen anahtar sayı kadar ileri kaydırarak şifreli mesajı oluşturmak üzeredir. Şifreyi çözmek için ise anahtar sayısı ile şifreli mesajdaki her karakterin anahtar sayısı kadar geriye giderek ana mesajı dönüştürmesi üzerinedir.

Örnek olarak ana mesajımız “canberk” olsun. Anahtar sayımız da 3 olsun. Daha sonra ana mesajdaki her harfi 3 harf ileri kaydırıp şifreli mesajı “fdqehun” olarak buluruz. Aynı şekilde bu şifreyi çözmek için ise o harften itibaren 3 harf geri giderek “canberk” ana mesajımızı elde ederiz.

Yazılan kodların ana yapısı her bir harfin ASCII sayı tablosunda karşılığına gelecek şekilde düşünülmüştür. Ayrıca alfabe 26 karakterle sınırlı olup Türkçe karakterler geçerli değildir.


İlk olarak maksimum anahtar uzunluğunu alfabe uzunluğu kadar olduğunu belirtelim.

Kod:
MAX_KEY_SIZE = 26
Daha sonra kullanıcıdan mesajı şifrelemek mi yoksa şifreli mesajı çözmek mi istediğini öğrenmek için bir fonksiyon oluşturalım.

Kod:
def getMode():
   while True:
      print('Do you wish to encrypt or decrypt a message?')
      mode = input().lower()
      if mode in 'encrypt e decrypt d'.split():
         return mode
      else:
         print('Enter either "encrypt" or "e" or "decrypt" or "d".')
Yukarıdaki fonksiyonda şifreleme(eccrypt) mi yoksa çözme (decrypt) işlemi yapmak istediğinizi soruyor, ardından sizin girdiğiniz değeri lower() fonksiyonu ile küçük harfe çevirip mode değişkenine atıyor. if dögüsü ile mode içine atanılan input değerinde ‘encrypt e decrypt d’ içerip içermediğini kontrol ediyor. Eğer içeriyorsa bunu return yapıyor değilse tekrar soruyor.

Kod:
def getMessage():
   print('Enter your message:')
   return input()
Yukarıdaki fonksiyonu “şifrelenecek” ya da “çözülecek” mesajı almak için kullanacağız. Daha sonra bu değeri return ediyoruz.

Kod:
   key = 0
   while True:
      print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
      key = int(input())
      if (key >= 1 and key <= MAX_KEY_SIZE):
         return key
Yukarıda ise şifreleme için gerekli olan anahtar değerini kullanıcıdan alıyoruz. Anahtar değerini maksimum alfabe uzunluğunda olması gerektiğini belirtiyoruz. Ardından da bu değeri return ediyoruz.

Kod:
def getTranslatedMessage(mode, message, key):
   if mode[0] == 'd':
      key = -key
   translated = ''
   for symbol in message:
      if symbol.isalpha():
         num = ord(symbol)
         num += key
         if symbol.isupper():
            if num > ord('Z'):      #90
               num -= 26
            elif num < ord('A'):    #65
               num += 26
         elif symbol.islower():
            if num > ord('z'):      #122
               num -= 26
            elif num < ord('a'):    #97
               num += 26
         translated += chr(num)
      else:
         translated += symbol
   return translated
Yukarıda fonksiyonun ana kısmını yazdık. İlk olarak kullanıcının yapmak istediği işlemi mode değerine atamıştık. Eğer kullanıcı bir mesajı şifrelemek istiyorsa ikinci ve üçüncü satırları atlayıp işleme girecektir. Eğer şifre çözmek istiyorsa üçüncü satırda anahtar değerini negatif yaparak geriye doğru gitmeyi sağlayacaktır. translated,ilk içi boş olarak atanan,bizim sonuç değişkenimizdir. Ardından for döngüsü ile kullanıcının mesajının her harfini symbol isimli değişkene atayıp o karakterin harf olup olmadığını kontrol etmek için isalpha() fonksiyonunu kullanacağız. Ardından kullanıcıdan alının anahtar değerini, o harfin ASCII tablosundaki değerine ekliyoruz/azaltıyoruz. Daha sonra alfabenin sınırlarını belirlemek için hem küçük hem de büyük harfler için sınırları çiziyoruz. Bundan sonra elimizdeki sayı değerini karaktere çevirip translated değişkenine atıyoruz. Eğer en başta kontrol ettiğimiz harf olup olmama durumunda, eğer harf harici bir karakter varsa bunu değiştirmeden direk sonuç değişkenine atıyor. Ardından da sonuç(translated) değişkenini return ediyoruz.

Kod:
mode = getMode()
message = getMessage()
key = getKey()
İlk başta yazdığımız 3 fonksiyondan gelen değerleri ayrı ayrı değişkenlere atıyoruz.

Kod:
print('Your translated text is:')
print(getTranslatedMessage(mode, message, key))
Son olarak print fonksiyonu içinde ana fonksiyonumuza, diğer fonksiyonlardan gelen değerleri parametre olarak gönderip sonucumuzu alıyoruz.

Tek parça kod: https://github.com/canozer13/Python/...r_algorithm.py




___________________________________________

Bakıp görmeyenlerden, Konuşup dinlemeyenlerden, dokunup hissetmeyenlerden uzak durun...

26-06-2018 01:00

Konu SessizKalpler tarafından (03-06-2018 15:46 Saat 15:46 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
Alt 03-06-2018 15:31   #2
  • Analiz Ekibi Asistanı
  • Üye Bilgileri
Üyelik tarihi
12/2017
Mesajlar
Konular

Teşekkür (Etti): 732
Teşekkür (Aldı): 508




Ellerinize Sağlık
 Offline  
 
Alıntı ile Cevapla
Alt 03-06-2018 15:44   #3
  • Forumdan Uzaklaştırıldı
  • Üye Bilgileri
Üyelik tarihi
07/2017
Mesajlar
Konular

Teşekkür (Etti): 70
Teşekkür (Aldı): 75




Ellerine sağlık kardeşim. Çok güzel konu olmuş.
 Offline  
 
Alıntı ile Cevapla
Alt 03-06-2018 15:46   #4
  • Üsteğmen
  • Üye Bilgileri
Üyelik tarihi
10/2017
Nereden
T Ü R K
Yaş
19
Mesajlar
Konular

Teşekkür (Etti): 143
Teşekkür (Aldı): 159




Eline sağlık



___________________________________________

Gâfil ne bilir neş've-i pür-şevk-i vegâyı
Meydân-ı celâdetteki envar-ı sefâyı
Merdân-ı gazâ aşk ile tekbirler alınca
Titretti yine, rû-yı zemin arş-ı semâyı.
Allah yolunda cenk edelim şân alalım şan
Kur'an'da zafer vaadediyor Hazret'i Yezdan.
 Offline  
 
Alıntı ile Cevapla
Alt 11-06-2018 02:33   #5
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
03/2018
Nereden
.
Mesajlar
Konular

Teşekkür (Etti): 39
Teşekkür (Aldı): 31




Teşşekürler Eline Sağlık



___________________________________________

Tarih bir milletin neler başarabilme gücünde olduğunu gösteren en doğru bir kılavuzdur.

-Mustafa Kemal Atatürk
 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2019

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+
Pomeranian Boo
instagram takipci hilesi

wau