Bu haftaki ödevinizde tarihin en eski metin şifreleme
tekniklerinden birisini kullanarak, kullanıcının girdiği bir cümleyi,
bu şifreleme işleminden geçirip ekrana basmanız, ardından da
şifrelenmiş metni çözerek, Orijinal metni ekrana basan bir program
yazmanız beklenmektedir.
Bahsi geçen şifreleme tekniği, şifrelenecek metin içerisindeki her
bir karakteri/harfi alfabede o harften n adet sonra gelen harfle
değiştirmeye dayanmaktadır. Örneğin şifrelenecek metin
Bu ders cok zor
olsun. N değerinin 3 olduğunu farz edersek, şifreleme işleminden
sonra ortaya çıkacak olan metin şöyle olmalıdır:
Ex ghuv frn cru
Zira alfabede Bden üç sonra gelen harf E, udan üç sonra gelen
harf zdir ve diğer harfler de benzer şekilde şifrelenmiştir
(Girilecek metinde Türkçe karakterler (ü, ı, ş, ü, vs.) olmadığını,
bütün karakterlerin 26 harflik Latin Alfabesinden olduğunu
varsayabilirsiniz. Boşluk karakterlerini şimdilik
kodlamayabilirsiniz). Eğer şifreleme sırasında n adet ileri giderken
alfabenin sonuna gelindiyse, şifreleme prosesi ilerlemeye alfabenin
başından devam etmelidir.
Teslim edeceğiniz ödevde yukarıdaki şifreleme/kodlama işlemini
yapan bir fonksiyon olmalı, ayrıca şifrelenmiş metinden geri açık
metne dönmeyi sağlayan bir de şifre çözme fonksiyonu olmalıdır.
Bu şekilde yazdığınız fonksiyonları kullanan bir kullanıcı, istediği
bir metni önce şifreleyip, sonra da şifrelenmiş metni geri çözdürüp,
orijinal metni elde edip edemediğine bakarak şifreleme
fonksiyonunuzun doğru çalışıp çalışmadığının kontrolünü
yapabilmelidir. Ayrıca kullanıcı farklı n değerleriyle metin şifreleme
ve şifre çözme yapabilmelidir.
Ödevinizi yaparken dilerseniz Pythonun, bir karakterin sayısal
karşılığını döndüren ord isimli fonksiyonundan faydalanabilirsiniz.
Bütün karakterler alfabedeki sıralarına göre sayısal değerlere
sahiptirler.
Programızı tamamlayıp doğru çalıştıktan sonra içerisinde Türkçe
karakterler ve/veya $, #, %, içeren metinlerle de deneyin,
boşluk karakterini de kodlayın ve ne gibi sonuçlar aldığınızı
gözlemleyip yorumlayın. Yorumlarınızı programınızın içine yorum
(comment) satırları şeklinde yazabilirsiniz
def sem(x,n):
cikti=""
for i in range (len(x)):
cikti+=chr(ord(x) + n)
print(cikti)
def sem1(x,n):
sonuc=""
for i in range(len(x)):
sonuc += chr(ord(cikti) -n)
print(sonuc)
sem1("sd",5)
buraya kadar geldim üstteki fonksiyondan nasıl data çekeceğimi ciktiyi bağlayıp 2 saniyede halolucağını biliyorum ama nasıl birde şu altta iki tane fonksiyonu çalıştırmayı bilmiyoru myardım lütfen 5 saattir uğraşıyorum
tekniklerinden birisini kullanarak, kullanıcının girdiği bir cümleyi,
bu şifreleme işleminden geçirip ekrana basmanız, ardından da
şifrelenmiş metni çözerek, Orijinal metni ekrana basan bir program
yazmanız beklenmektedir.
Bahsi geçen şifreleme tekniği, şifrelenecek metin içerisindeki her
bir karakteri/harfi alfabede o harften n adet sonra gelen harfle
değiştirmeye dayanmaktadır. Örneğin şifrelenecek metin
Bu ders cok zor
olsun. N değerinin 3 olduğunu farz edersek, şifreleme işleminden
sonra ortaya çıkacak olan metin şöyle olmalıdır:
Ex ghuv frn cru
Zira alfabede Bden üç sonra gelen harf E, udan üç sonra gelen
harf zdir ve diğer harfler de benzer şekilde şifrelenmiştir
(Girilecek metinde Türkçe karakterler (ü, ı, ş, ü, vs.) olmadığını,
bütün karakterlerin 26 harflik Latin Alfabesinden olduğunu
varsayabilirsiniz. Boşluk karakterlerini şimdilik
kodlamayabilirsiniz). Eğer şifreleme sırasında n adet ileri giderken
alfabenin sonuna gelindiyse, şifreleme prosesi ilerlemeye alfabenin
başından devam etmelidir.
Teslim edeceğiniz ödevde yukarıdaki şifreleme/kodlama işlemini
yapan bir fonksiyon olmalı, ayrıca şifrelenmiş metinden geri açık
metne dönmeyi sağlayan bir de şifre çözme fonksiyonu olmalıdır.
Bu şekilde yazdığınız fonksiyonları kullanan bir kullanıcı, istediği
bir metni önce şifreleyip, sonra da şifrelenmiş metni geri çözdürüp,
orijinal metni elde edip edemediğine bakarak şifreleme
fonksiyonunuzun doğru çalışıp çalışmadığının kontrolünü
yapabilmelidir. Ayrıca kullanıcı farklı n değerleriyle metin şifreleme
ve şifre çözme yapabilmelidir.
Ödevinizi yaparken dilerseniz Pythonun, bir karakterin sayısal
karşılığını döndüren ord isimli fonksiyonundan faydalanabilirsiniz.
Bütün karakterler alfabedeki sıralarına göre sayısal değerlere
sahiptirler.
Programızı tamamlayıp doğru çalıştıktan sonra içerisinde Türkçe
karakterler ve/veya $, #, %, içeren metinlerle de deneyin,
boşluk karakterini de kodlayın ve ne gibi sonuçlar aldığınızı
gözlemleyip yorumlayın. Yorumlarınızı programınızın içine yorum
(comment) satırları şeklinde yazabilirsiniz
def sem(x,n):
cikti=""
for i in range (len(x)):
cikti+=chr(ord(x) + n)
print(cikti)
def sem1(x,n):
sonuc=""
for i in range(len(x)):
sonuc += chr(ord(cikti) -n)
print(sonuc)
sem1("sd",5)
buraya kadar geldim üstteki fonksiyondan nasıl data çekeceğimi ciktiyi bağlayıp 2 saniyede halolucağını biliyorum ama nasıl birde şu altta iki tane fonksiyonu çalıştırmayı bilmiyoru myardım lütfen 5 saattir uğraşıyorum