01.08.2023
3
Beğenme
1093
Görüntülenme
Bu yazıda, en basit şifreleme algoritmalarından biri olan Yerine Koyma Şifrelemesini (Substitution Cipher) ele alacağız. Keyifli okumalar dilerim :)
Adından da anlaşılacağı üzere alfabedeki her bir karakterin yerine, alfabedeki seçilmiş başka bir karakteri atamaya dayanır. Sezar şifrelemesinde anahtar genellikle alfabedeki harflerin 3 birim kaydırılmasıyla oluşturulurken bu algoritmada anahtarın belirlenmesinde belirli bir kural yoktur. Yani anahtar, metni şifrelemek isteyen kişi tarafından tamamıyla rastgele seçilebilir.
Uygulanışı
Alfabe ve Anahtar:
abcçdefgğhıijklmnoöprsştuüvyz
müfıvejihpğaodyrubşgzcötsçlnk
Örnek bir uygulama olarak "Patika" kelimelerini şifreleyelim: Gmtadm
Avantajları:
Dezavantajları:
Yerine Koyma Şifrelemesini Kırmak
En başlıca bilinen basit yöntemlere bakalım:
Python Kodu
def yerine_koyma_sifre(alfabe, anahtar, acik_metin):
yerine_koy = {}
for i in range(len(alfabe)):
yerine_koy[alfabe[i]] = anahtar[i]
sifreli_metin = ''
for karakter in acik_metin:
if karakter.lower() in alfabe:
sifreli_metin += yerine_koy[karakter.lower()].upper() if karakter.isupper() else yerine_koy[karakter.lower()]
else:
sifreli_metin += karakter
return sifreli_metin
def
anahtar kelimesi ile yerine_koyma_sifre()
isimli fonksiyonumuzu tanımladık. Fonksiyon 3 adet parametre alıyor. Bunlar; şifreleme yapacağımız dilin alfabesi, alfabedeki her harfe karşılık oluşturacak anahtar ve son olarak da şifrelenecek metin.yerine_koy
isminde bir dictionary
tanımlıyoruz. Bu dictionary alfabedeki harfleri anahtardaki harfler ile eşleştirdiğimizde, her harfe karşılık gelen değeri key-value
ilişkisi ile tutacak.for
döngüsü tanımlıyoruz. Bu for döngüsü alfabenin uzunluğu kadar dönecek ve alfabedeki her harfi index numarasına göre anahtardaki karşılığı ile eşleştirecek.string
tanımlıyoruz.for
döngüsü başlatıyoruz. Bu döngü açık_metin'deki her karakteri gezecek ve eğer karakter alfabenin içerisinde ise (karakteri lower()
fonksiyonu ile küçültüyoruz çünkü alfabeyi küçük olarak tanımlayacağız) ternary
bir ifade kullanarak:else
durumunda ise karakter şifrelenmeden direkt olarak sifreli_metin stringine eklenir.return
anahtar kelimesi ile döndürülür.Dilerseniz fonksiyonu Patika kelimesi ile test edelim:
alfabe = 'abcçdefgğhıijklmnoöprsştuüvyz'
anahtar = 'müfıvejihpğaodyrubşgzcötsçlnk'
metin = 'Patika'
sifrele = yerine_koyma_sifre(alfabe, anahtar, metin)
print(sifrele) #Gmtadm
Beni daha fazla dokümantasyon ve bilgi için aşağıdaki GitHub hesabımdan takip edebilirsiniz :)
Okuduğunuz için teşekkür ederim, başka algoritmalarda görüşmek üzere :)
Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!
This website uses cookies to ensure you get the best experience.
Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.