Caesar Cipher Nedir?
Caesar Cipher (Sezar Şifreleme), antik Roma İmparatoru Julius Caesar tarafından kullanılan basit bir şifreleme yöntemidir. Bu yöntem, her harfin alfabedeki belirli bir sayıda kaydırılmasıyla oluşturulur. Örneğin, bir harfi üç pozisyon sağa kaydırarak şifreleyebilirsiniz: A -> D, B -> E, C -> F vb. Bu tür şifreleme, bilgi güvenliğini artırmak için kullanılır ve kriptografi dünyasında temel bir kavramdır.
Proje Hedefleri ve Öğrenci Faydaları
Bu proje ile öğrenciler, temel Python bilgilerini kullanarak basit ve fonksiyonel programlar geliştirme becerilerini pekiştireceklerdir. Ayrıca, şifreleme ve veri işleme konularında deneyim kazanacaklardır.
Projenin Hedef Çıktıları
Temel Python yapıları ve kontrol akışlarını kullanarak bir şifreleme uygulaması oluşturma.
Kullanıcıdan veri alma ve bu verileri işleyerek şifreleme ve şifre çözme işlemlerini yönetme.
Fonksiyonlar yardımıyla daha modüler ve okunabilir kod yazma.
Projenin Adım Adım Görevleri
Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alma.
Kullanıcıdan kaydırma miktarını ve metni alma.
Şifreleme veya şifre çözme işlemini gerçekleştirme.
Sonucu ekrana yazdırma.
Fonksiyonlar kullanarak kodu daha modüler hale getirme.
Fonksiyonsuz Çözüm
Adım 1: Kullanıcıdan Şifreleme veya Şifre Çözme İşlemi İçin Girdi Alma
İlk adımda, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alınacaktır.
# Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alma
islem = input("Şifreleme (e) veya Şifre Çözme (d) işlemi seçin: ").lower()
kaydirma = int(input("Kaydırma miktarını girin: "))
metin = input("Metni girin: ")
Bu kod parçası, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır.
Adım 2: Şifreleme veya Şifre Çözme İşlemini Gerçekleştirme
İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir.
# Şifreleme veya şifre çözme işlemini gerçekleştirme
sonuc = ""
for harf in metin:
if harf.isalpha():
ascii_offset = 65 if harf.isupper() else 97
if islem == 'e':
yeni_harf = chr((ord(harf) - ascii_offset + kaydirma) % 26 + ascii_offset)
elif islem == 'd':
yeni_harf = chr((ord(harf) - ascii_offset - kaydirma) % 26 + ascii_offset)
sonuc += yeni_harf
else:
sonuc += harf
Bu kod parçası, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu oluşturur.
Adım 3: Sonucu Ekrana Yazdırma
Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır.
# Sonucu ekrana yazdırma
print("Sonuç:", sonuc)
Bu kod parçası, hesaplanan sonucu ekrana yazdırır.
Fonksiyonlarla Çözüm
Adım 1: Kullanıcıdan Şifreleme veya Şifre Çözme İşlemi İçin Girdi Alma Fonksiyonu
İlk adımda, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alınacaktır.
def veri_al():
"""Kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır."""
islem = input("Şifreleme (e) veya Şifre Çözme (d) işlemi seçin: ").lower()
kaydirma = int(input("Kaydırma miktarını girin: "))
metin = input("Metni girin: ")
return islem, kaydirma, metin
Bu fonksiyon, kullanıcıdan şifreleme veya şifre çözme işlemi için girdi alır ve döndürür.
Adım 2: Şifreleme veya Şifre Çözme İşlemini Gerçekleştirme Fonksiyonu
İkinci adımda, kullanıcı tarafından seçilen işlem gerçekleştirilir.
def sezar_sifrele(islem, kaydirma, metin):
"""Şifreleme veya şifre çözme işlemini gerçekleştirir."""
sonuc = ""
for harf in metin:
if harf.isalpha():
ascii_offset = 65 if harf.isupper() else 97
if islem == 'e':
yeni_harf = chr((ord(harf) - ascii_offset + kaydirma) % 26 + ascii_offset)
elif islem == 'd':
yeni_harf = chr((ord(harf) - ascii_offset - kaydirma) % 26 + ascii_offset)
sonuc += yeni_harf
else:
sonuc += harf
return sonuc
Bu fonksiyon, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu döndürür.
Adım 3: Sonucu Ekrana Yazdırma Fonksiyonu
Üçüncü adımda, hesaplanan sonuç ekrana yazdırılacaktır.
def sonucu_yazdir(sonuc):
"""Hesaplanan sonucu ekrana yazdırır."""
print("Sonuç:", sonuc)
Bu fonksiyon, hesaplanan sonucu ekrana yazdırır.
Adım 4: Şifreleme Uygulamasını Başlatma Fonksiyonu
Bu fonksiyon, Caesar Cipher uygulamasını başlatır ve uygulamanın akışını yönetir.
def sifreleme_uygulamasini_baslat():
"""Caesar Cipher uygulamasını başlatır."""
islem, kaydirma, metin = veri_al()
sonuc = sezar_sifrele(islem, kaydirma, metin)
sonucu_yazdir(sonuc)
# Uygulamayı başlatma
sifreleme_uygulamasini_baslat()
Bu fonksiyon, Caesar Cipher uygulamasını başlatır ve uygulamanın akışını yönetir. Kullanıcıdan gerekli verileri alır, şifreleme veya şifre çözme işlemini gerçekleştirir ve sonucu ekrana yazdırır.
Kullanılan Konular
Veri Tipleri: Bu projede, stringler (kullanıcı girişi, metin) ve tam sayılar (kaydırma miktarı) kullanılmıştır.
Koşullu İfadeler: if-else yapıları, kullanıcıdan alınan işlemi belirlemek ve doğru işlemi gerçekleştirmek için kullanılmıştır.
Fonksiyonlar: Fonksiyonlar, kodun modüler ve tekrar kullanılabilir olmasını sağlamıştır.
Döngüler: for döngüsü, metindeki her bir harfi işlemek için kullanılmıştır.