Python'un Base64 modülü, mesajları kodlamak ve çözmek için güçlü bir araçtır. İnternet üzerinden güvenli bir şekilde veri göndermek için kullanabilirsiniz. Hassas verileri saldırgan bilgisayar korsanlarından korumak için bu tür bir kodlamayı kullanmak web siteleri, uygulamalar ve iletişim hizmetleri için standart bir prosedürdür.
Base64 modülü, veri aktarımlarınıza biraz ekstra güvenlik ekleyerek mesajları kodlamak ve kodunu çözmek için kullanabileceğiniz bir çift işleve sahiptir.
Tkinter ve Base64 Modülü
Tkinter, masaüstü uygulamaları oluşturmanıza olanak tanır. Uygulamaları çok fazla çaba harcamadan geliştirmeyi kolaylaştıran düğmeler, etiketler ve metin kutuları gibi çeşitli widget'lar sunar. Tkinter ile inanılmaz GUI programları oluşturabilirsiniz. Eğer olabilir basit bir hesap makinesi oluşturmak
, yapılacaklar listesi uygulaması veya yazarak test oyunu. Tkinter'ı sisteminize kurmak için terminalinizi açın ve şunu yazın:pip kurulumu tkinter
BASE64, ikili verileri ASCII'ye kodlamak ve bunları ikiliye geri döndürmek için işlevler sağlar. Bilgi aktarımını daha güvenli hale getiren hem standart hem de URL güvenli kodlamayı destekler. Bir diziyi Base64 karakterine dönüştürmek için her karakterin ASCII değerini alın ve 8 bitlik ikilisini hesaplayın. Rakamları yeniden gruplayarak ve bunları ilgili ondalık değerlerine yeniden dönüştürerek bu 6 bit yığınını dönüştürün. Son olarak, her ondalık basamak için Base64 değerlerini almak üzere Base64 kodlama tablosunu kullanın.
Python'da Mesajları Kodlama ve Kod Çözme
Bu projenin kaynak kodunu kendi içinde bulabilirsiniz. GitHub deposu.
Her iki modülü de içe aktararak başlayın. Tkinter örneğini başlatın ve kök pencereyi görüntüleyin. Pencerenin başlığını, piksel cinsinden boyutlarını ve arka plan rengini ayarlayın.
itibaren tkinter içe aktarmak *
içe aktarmak temel64
kök = Tk()
kök.geometri("750x400")
root.config (arka plan="su")
root.title("Python Kullanarak Mesajları Kodlayın ve Kodlarını Çözün")
Uygulama hakkında faydalı bilgileri görüntülemek için Etiket widget'larını kullanın. Etiket, yerleştirmek istediğiniz bir ana pencereyi, görüntülemesi gereken metni ve yazı tipi stilini, rengini ve arka plan rengini kabul eder. Kullanmak ambalaj() widget'ı ana widget'a yerleştirmeden önce bir düzen bloğunda düzenlemek için. StringVar, Etiket veya Giriş gibi bir parçacığın değerini kontrol etmeyi kolaylaştırır.
Etiket (kök, metin="Python Mesaj Kodlayıcı ve Kod Çözücü", yazı tipi="arial 25 kalın", fg='beyaz', bg="mor").ambalaj()
Metin = StringVar()
anahtar = StringVar()
kip = StringVar()
Sonuç = StringVar()
Bir işlev tanımlayın Kodla() mesajla birlikte kodlama ve kod çözme için bir anahtarı kabul eder. Boş bir liste tanımlayın ve mesajın uzunluğuna kadar yineleyin. Anahtarın dizinini işlemin modülü olarak ayarlayın ve değerini key_c değişkeninde saklayın. Kullanmak sıra () karakterin Unicode değerini almak ve kullanmak için chr() belirtilen değeri temsil eden karakteri almak için.
Bu değeri listeye ekleyin. Listenin her öğesini boş bir dizeyle birleştirin ve kodlamak() dizenin utf-8 kodlu sürümünü döndürme yöntemi. bu base64.urlsafe_b64encode() yöntemi bu girişi kodlar ve -'yi + ile ve _'yi / ile değiştirir.
kesinkodlamak(Anahtar mesaj):
enc = []için Ben içinde aralık (len (mesaj)):
key_c = key[i % len (anahtar)]
enc.append (chr((ord (message[i]) + ord (key_c)) % 256))
geri dönmek base64.urlsafe_b64encode("".join (enc).encode()).decode()
Bir işlev tanımlayın kod çözme() mesajla birlikte kodlama ve kod çözme için bir anahtarı kabul eder. Boş bir liste tanımlayın ve mesajın kodunu çözün. Mesajın uzunluğuna kadar yineleyin ve işlemin modülünü indeks olarak ayarlayın ve değerini key_c'de saklayın. Aşağıda gösterildiği gibi Unicode dize mesaj kod çözme karakterini ekleyin. Kodu çözülmüş dizeyi döndür.
kesinşifresini çöz(Anahtar mesaj):
aralık = []
mesaj = base64.urlsafe_b64decode (mesaj).decode()için Ben içinde aralık (len (mesaj)):
key_c = key[i % len (anahtar)]
dec.append (chr((256 + sıra (mesaj[i]) - sıra (key_c)) % 256))
geri dönmek"".join (dec)
Bir işlev tanımlayın mod() kullanıcı tarafından Girdi parçacığına girilen modu alır ve seçime göre uygun işlevi çağırır. Kullanıcının geçerli bir yanıt girmemesi durumunda bir hata mesajı görüntüleyin.
kesinmod():
eğer (mod.get() == 'E'):
Result.set (Kodla (key.get(), Text.get()))
elif (mod.get() == 'D'):
Result.set (Kod Çöz (key.get(), Text.get()))
başka:
Sonuç kümesi("Geçersiz Mod")
Bir işlev tanımlayın Çıkış() arka planda çalışan tercümanı öldürmek ve sonlandırmak için. Giriş alanının içeriğini temizlemek için bir Reset() işlevi tanımlayın.
kesinçıkış():
root.destroy()
kesinSıfırla():
metin.set("")
anahtar seti("")
Mod ayarı("")
Sonuç kümesi("")
Mesaj, Anahtar, Mod ve Metin için Etiket ve Giriş widget'larını tanımlayın. Bunları yerleştirmek istediğiniz ana pencereyi, yazı tipi stilini, metni ve arka plan rengini belirtin. Ayrıca bunları düzenlemek için koordinatları ayarlayın.
Etiket (kök, yazı tipi="arial 17 kalın", metin='İleti', fg='siyah', bg="su").yer (x=60y=100)
Giriş (kök, yazı tipi="arial 15", textvariable=Metin, bg='beyaz').yer (x=450y=100)Etiket (kök, yazı tipi="arial 17 kalın", metin='Anahtar', fg='siyah', bg="su").yer (x=60y=130)
Giriş (kök, yazı tipi="arial 15", metin değişkeni=anahtar, bg='beyaz').yer (x=450y=130)Etiket (kök, yazı tipi="arial 17 kalın", metin='Mod (E-Kodlama, D-Kod Çözme)', fg='siyah', bg="su").yer (x=60y=160)
Giriş (kök, yazı tipi="arial 15", metin değişkeni=mod, bg='beyaz').yer (x=450y=160)
Etiket (kök, yazı tipi="arial 17 kalın", metin='Metin', fg='siyah', bg="su").yer (x=60y=190)
Giriş (kök, yazı tipi="arial 15 kalın", textvariable=Sonuç, bg='beyaz').yer (x=450y=190)
Benzer şekilde, sonucu görüntülemek, alanları sıfırlamak ve programı durdurmak için üç düğme tanımlayın. Düğmelerin, bir işlevi alan ve tıklatıldığında yürüten komut adı verilen özel bir parametresi vardır.
Düğme (kök, yazı tipi="arial 15 kalın", metin='Sonuç', padx=2, bg='Açık gri', komut=Mod).yer (x=100y=240)
Düğme (kök, yazı tipi="arial 15 kalın", metin='Sıfırla', genişlik=6, komut=Sıfırla, bg='Yeşil', padx=2).yer (x=300y=240)
Düğme (kök, yazı tipi="arial 15 kalın", metin='Durmak', genişlik=6, komut=Çıkış, bg='Kırmızı', padx=2, çeltik=2).yer (x=500y=240)
bu Ana döngü() işlevi, Python'a Tkinter olay döngüsünü çalıştırmasını ve siz pencereyi kapatana kadar olayları (düğmeye basmalar gibi) dinlemesini söyler.
root.mainloop()
Mesaj Kodlayıcı / Kod Çözücü İş Başında
Programı çalıştırdığınızda, program bir mesaj, bir anahtar ve bir mod girmeniz gereken bir pencere görüntüler. 2009 tuşuyla Kodlama modu seçildiğinde, mesaj Faydalanmak dönüşür f8KRwpvCnlLChcKjwp5Sf8KW.
Benzer şekilde, kodlanmış mesajı kopyalayıp aynı kod çözme için girişe geri yapıştırdığınızda, orijinal mesajı geri alırsınız.
Python Kullanarak Siber Güvenlik
Güvenlik kontrollerini otomatikleştiren, ağları izleyen ve güvenlik açıklarını tarayan komut dosyaları yazmak için Python'u kullanabilirsiniz. Verilerinizi tehlikeye atan bir saldırganın şansını azaltmak için kimlik doğrulama kullanan güçlü uygulamalar oluşturmak için bunu kullanabilirsiniz.
Siber güvenlik uzmanları, bir uygulamayı izlemek üzere web uygulaması güvenlik duvarları oluşturmak için genellikle Python'u kullanır. Makine Öğrenimi kullanarak tehdit algılama analizi yapabilirler. Bu mimari ile özel sızma testleri oluşturmak ve güvenlik protokollerini doğrulamak çok daha kolay.