Projekt aplikacji z graficznym interfejsemgraficzny interfejs użytkownikagraficznym interfejsem generującej szyfrogramyszyfrogramszyfrogramy rozpoczniemy od wyboru algorytmów szyfrujących. Następnie utworzymy moduły zawierające odpowiednie funkcje:
dla szyfrowania szyfrem płotkowym – plik plotkowy.py,
dla szyfrowania szyfrem Cezara – plik cezara.py,
dla szyfrowania szyfrem Playfair – plik playfair.py,
dla szyfrowania szyfrem Vigenère'a – plik vigenere.py,
dla funkcji dodatkowych – plik app_funkcje.py.
Ważne!
Szyfr Cezara prezentowany w tym e‑materiale jest szyfrem bazującym na alfabecie łacińskim, zatem nie obsługuje polskich znaków.
W programie wyodrębnimy następujące elementy:
główny interfejs,
część odpowiedzialną za zapisywanie informacji do dziennika (tzw. logowanie),
Do tworzenia programu wykorzystamy następujące moduły języka Python:
PySimpleGUIPySimpleGUIPySimpleGUI – moduł odpowiedzialny za wyświetlanie interfejsu graficznego,
logging – standardowy moduł języka Python umożliwiający zapisy dzienników, który wykorzystamy do zapisywania daty i czasu uruchomienia programu, wybranego szyfru, podanego tekstu jawnego oraz szyfrogramu.
Program z linii poleceń będzie można wywołać z następującymi argumentami:
--help (w przypadku uruchamiania na systemie Linux) / --help (w przypadku uruchamiania na systemie Windows) - uruchamia ekran pomocy
<szyfr> <tekst> <opcje_dla_szyfru> - oznaczające kolejno skrót szyfru, który ma zostać użyty (cezar - dla szyfru Cezara, plf - dla szyfru Playfair, vig - dla szyfru Vigenère'a i plot - dla szyfru płotkowego), tekst do zaszyfrowania i opcje dla szyfrowania (klucz dla szyfrów Playfair i Vigenère'a, wysokość płotka dla szyfru płotkowego i przesunięcie dla szyfru Cezara).
1
Przykład 1
Pracę rozpoczniemy od utworzenia folderu, w którym zapiszemy pliki zawierające funkcje szyfrujące. W każdym z nich na końcu znajduje się specyficzna instrukcja warunkowa, dzięki której przy próbie uruchomienia bezpośredniego pliku otrzymamy komunikat informujący, że ten plik jest częścią projektu i nie powinien być wykonywany samodzielnie. Specjalna zmienna dunderdunderdunder o nazwie name zawiera nazwę modułu. Przyjmuje ona różne wartości w zależności od sposobu uruchomienia i pozwala różnicować działanie np. skryptu uruchomionego bezpośrednio od skryptu użytego jako zależność w innym skrypcie. Jeśli plik w języku Python uruchamiamy bezpośrednio, to zmienna ta ma wartość "main" i wykonywany jest kod zawarty w następującej instrukcji warunkowej:
Linia 1. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 2. print otwórz nawias okrągły cudzysłów Ten plik nie powinien być wykonywany samodzielnie kropka cudzysłów zamknij nawias okrągły.
Próba uruchomienia pliku w linii poleceń systemu Linux, systemu Windows oraz w programie IDLE wygląda tak:
RVRXWI4TOhE0t
RsYwqzriKOS9n
R1GDamHl4XT76
Widzimy, że w katalogu znajdują się pliki:
RxRvnDpIrupwy
1
Ważne!
Pamiętajmy, że dobrą praktyką przy tworzeniu projektów aplikacji jest oddzielenie kodu odpowiedzialnego za poszczególne elementy programu w różnych fizycznych plikach z kodem źródłowym.
1
Przykład 2
Następnie rozpoczynamy tworzenie głównego skryptu aplikacji (nazwijmy go app_glowna.py) oraz pliku zawierającego różne funkcje dodatkowe (nazwijmy go app_funkcje.py).
W skrypcie aplikacji (app_glowna.py) zadbajmy o to, aby sprawdzić, czy wszystkie niezbędne moduły są dostępne:
Linia 1. kratka importy standardowych modułów minus one powinny być dostępne zawsze.
Linia 2. import sys.
Linia 3. import logging.
Linia 5. kratka zdefiniowanie pliku dziennika aplikacji i jego minimalnej konfiguracji.
Linia 6. logging kropka basicConfig otwórz nawias okrągły filename znak równości cudzysłów app podkreślnik dziennik kropka log cudzysłów przecinek filemode znak równości cudzysłów a cudzysłów przecinek level znak równości logging kropka INFO zamknij nawias okrągły.
Linia 8. kratka próba importu zewnętrznych modułów.
Linia 9. try dwukropek.
Linia 10. import PySimpleGUI as sg.
Linia 11. except dwukropek.
Linia 12. kratka informacja dla użytkownika przecinek jeśli moduł nie jest zainstalowany.
Linia 13. print otwórz nawias okrągły cudzysłów Brak modułu PySimpleGUI minus dodaj go narzędziem pip cudzysłów zamknij nawias okrągły.
Linia 14. kratka oraz zakończenie działania aplikacji.
Linia 15. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Brak danego modułu poskutkuje wyświetleniem informacji o konieczności zainstalowania go.
Aby ułatwić dostęp do różnych elementów sterujących aplikacji, stworzymy pustą klasę oraz obiekt tej klasy, do którego będziemy dodawać elementy jako właściwości.
Linia 1. kratka zdefiniowanie pustej klasy dla celów przetrzymywania krytycznych informacji.
Linia 2. class APP dwukropek.
Linia 3. pass.
Linia 5. kratka oraz instancji tej klasy.
Linia 6. app podkreślnik main znak równości APP otwórz nawias okrągły zamknij nawias okrągły.
Linia 8. kratka przypisujemy pewne właściwości.
Linia 9. app podkreślnik main kropka app podkreślnik name znak równości cudzysłów Aplikacja szyfrująca cudzysłów.
Linia 10. app podkreślnik main kropka rodzaje podkreślnik szyfrowania znak równości otwórz nawias kwadratowy cudzysłów cezar cudzysłów przecinek cudzysłów plf cudzysłów przecinek cudzysłów vig cudzysłów przecinek cudzysłów plot cudzysłów zamknij nawias kwadratowy.
1
Ważne!
W języku programowania Python obiekty są bardzo elastyczne. Możemy dodawać dowolne nowe właściwości do istniejących obiektów, a Python utworzy je w przestrzeni nazwprzestrzeń nazwprzestrzeni nazw tego obiektu, do którego je dodajemy. Oto przykład:
Aplikacja ma uruchamiać tryb graficzny (nazwiemy go gui), kiedy zostanie wywołana bez żadnego parametru. Natomiast jeśli będzie jakikolwiek parametr, ustawiony zostanie tryb nieinteraktywny (nazwiemy go script). W tym celu tworzymy kolejną właściwość obiektu app_main, bazując na długości listy parametrów wywołania skryptu:
Linia 1. kratka sprawdzamy przecinek czy aplikacja została wywołana z jakimkolwiek parametrem przecinek wówczas ustawiamy właściwość trybu pracy.
Linia 2. if len otwórz nawias okrągły sys kropka argv zamknij nawias okrągły zamknij nawias ostrokątny 1 dwukropek.
Linia 3. app podkreślnik main kropka tryb podkreślnik pracy znak równości cudzysłów script cudzysłów.
Linia 4. else dwukropek.
Linia 5. app podkreślnik main kropka tryb podkreślnik pracy znak równości cudzysłów gui cudzysłów.
Linia 7. if app podkreślnik main kropka tryb podkreślnik pracy znak równości znak równości cudzysłów script cudzysłów dwukropek.
Linia 8. print otwórz nawias okrągły cudzysłów script cudzysłów zamknij nawias okrągły.
Linia 9. print otwórz nawias okrągły sys kropka argv zamknij nawias okrągły.
Linia 10. sys kropka exit otwórz nawias okrągły 0.
Spróbujmy przetestować dotychczasowy kod:
RDukhiznpWuFH
Przechodzimy do przygotowania uruchomienia trybu nieinteraktywnego. Zapisujemy funkcję pomoc(), która wyświetli poprawną składnię. Tworzymy listę dozwolonych opcji i jeśli wywołanie programu będzie niezgodne z naszymi oczekiwaniami lub pojawi się opcja --help (Linux) lub help (Windows), uruchamiamy funkcję pomoc().
Modyfikujemy początek aplikacji, dodając instrukcje importujące odpowiednie moduły.
Linia 1. kratka próba importu modułów zawierających funkcje dodatkowe i szyfrujące.
Linia 2. try dwukropek.
Linia 3. from app podkreślnik funkcje import asterysk.
Linia 4. from cezara import asterysk.
Linia 5. from playfair import asterysk.
Linia 6. from plotkowy import asterysk.
Linia 7. from vigenere import asterysk.
Linia 8. except dwukropek.
Linia 9. kratka informacja dla użytkownika przecinek jeśli wystąpił jakiś błąd.
Linia 10. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 11. kratka oraz zakończenie działania aplikacji.
Linia 12. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Jeżeli nie uda się zaimportować odpowiednich modułów, zostanie to zgłoszone użytkownikowi za pomocą właściwego komunikatu.
W module app_funkcje.py zdefiniujemy funkcję odpowiedzialną za wyświetlenie komunikatu pomocy i zapisanie dziennika:
Linia 1. kratka plik zawierający dodatkowe funkcje.
Linia 2. import sys.
Linia 4. def pomoc otwórz nawias okrągły app podkreślnik main dwukropek object zamknij nawias okrągły dwukropek.
Linia 5. kratka Funkcja wyświetlająca pomoc w trybie nieinteraktywnym.
Linia 7. tekst znak równości f cudzysłów cudzysłów cudzysłów.
Linia 8. Pomoc dla programu dwukropek otwórz nawias klamrowy app podkreślnik main kropka app podkreślnik name zamknij nawias klamrowy.
Linia 9. znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości.
Linia 10. Zakładamy możliwości wykonania dwukropek.
Linia 12. dla systemu Linux dwukropek.
Linia 14. $ python3 app podkreślnik glowna kropka py minus minus help minus zamknij nawias ostrokątny wyświetli ten tekst.
Linia 15. $ python3 app podkreślnik glowna kropka py otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny otwórz nawias ostrokątny tekst zamknij nawias ostrokątny otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny.
Linia 17. dla systemu Windows dwukropek.
Linia 19. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py minus help minus zamknij nawias ostrokątny wyświetli ten tekst.
Linia 20. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny otwórz nawias ostrokątny tekst zamknij nawias ostrokątny otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny.
Linia 22. otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny minus możliwe opcje to otwórz nawias klamrowy app podkreślnik main kropka rodzaje podkreślnik szyfrowania zamknij nawias klamrowy minus określa rodzaj szyfrowania.
Linia 23. otwórz nawias ostrokątny tekst zamknij nawias ostrokątny minus tekst jawny do zaszyfrowania.
Linia 24. otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny minus ewentualne opcje dla szyfrowania dwukropek.
Linia 25. minus cezar znak równości liczba całkowita określająca przesunięcie w alfabecie.
Linia 26. minus plf znak równości ciąg znaków określający klucz do budowania tablicy.
Linia 27. minus vig znak równości ciąg znaków określający klucz do budowania klucza.
Linia 28. minus plot znak równości liczba całkowita określająca wysokość płotka.
Linia 30. Przykłady wywołania dwukropek.
Linia 32. dla systemu Linux.
Linia 34. $ python3 app podkreślnik glowna kropka py cezar LinuxToSystemOperacyjny 15.
Linia 35. Szyfrogram dwukropek AxcjmIdHnhitbDetgprnycn.
Linia 36. $ python3 app podkreślnik glowna kropka py plf LinuxToSystemOperacyjny OPENSOURCE.
Linia 37. Szyfrogram dwukropek otwórz nawias okrągły apostrof GTAOLZPONZSLNJENCBXAOMZY apostrof przecinek otwórz nawias kwadratowy apostrof O apostrof przecinek apostrof P apostrof przecinek apostrof E apostrof przecinek apostrof N apostrof przecinek apostrof S apostrof przecinek apostrof U apostrof przecinek apostrof R apostrof przecinek apostrof C apostrof przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof D apostrof przecinek apostrof F apostrof przecinek apostrof G apostrof przecinek apostrof H apostrof przecinek apostrof I apostrof przecinek apostrof J apostrof przecinek apostrof K apostrof przecinek apostrof L apostrof przecinek apostrof M apostrof przecinek apostrof T apostrof przecinek apostrof V apostrof przecinek apostrof W apostrof przecinek apostrof X apostrof przecinek apostrof Y apostrof przecinek apostrof Z apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 39. minus dla systemu Windows dwukropek.
Linia 41. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py cezar LinuxToSystemOperacyjny 15.
Linia 42. Szyfrogram dwukropek AxcjmIdHnhitbDetgprnycn.
Linia 43. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py plf LinuxToSystemOperacyjny OPENSOURCE.
Linia 44. Szyfrogram dwukropek otwórz nawias okrągły apostrof GTAOLZPONZSLNJENCBXAOMZY apostrof przecinek otwórz nawias kwadratowy apostrof O apostrof przecinek apostrof P apostrof przecinek apostrof E apostrof przecinek apostrof N apostrof przecinek apostrof S apostrof przecinek apostrof U apostrof przecinek apostrof R apostrof przecinek apostrof C apostrof przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof D apostrof przecinek apostrof F apostrof przecinek apostrof G apostrof przecinek apostrof H apostrof przecinek apostrof I apostrof przecinek apostrof J apostrof przecinek apostrof K apostrof przecinek apostrof L apostrof przecinek apostrof M apostrof przecinek apostrof T apostrof przecinek apostrof V apostrof przecinek apostrof W apostrof przecinek apostrof X apostrof przecinek apostrof Y apostrof przecinek apostrof Z apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 45. cudzysłów cudzysłów cudzysłów.
Linia 46. print otwórz nawias okrągły tekst zamknij nawias okrągły.
Linia 47. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 49. def zapis podkreślnik dziennika otwórz nawias okrągły logging dwukropek object przecinek info dwukropek str zamknij nawias okrągły dwukropek.
Linia 50. from datetime import datetime.
Linia 51. czas znak równości datetime kropka now otwórz nawias okrągły zamknij nawias okrągły.
Linia 52. log znak równości f cudzysłów otwórz nawias okrągły otwórz nawias klamrowy czas zamknij nawias klamrowy zamknij nawias okrągły minus otwórz nawias klamrowy info zamknij nawias klamrowy cudzysłów.
Linia 53. logging kropka info otwórz nawias okrągły log zamknij nawias okrągły.
Przykład wykonania w terminalu linii poleceń:
dla systemu Linux:
ROKHntsMU7YoH
dla systemu Windows:
RTYIIMELVmOzv1
1
Ważne!
Podczas tworzenia aplikacji niejednokrotnie napotykamy różne sytuacje, które jako programiści musimy przewidzieć, np. błędne parametry podane przez użytkownika. Proces tworzenia aplikacji jest czasochłonny i wymaga myślenia wyprzedzającego oraz wielokrotnego testowania.
1
Przykład 4
Kiedy mamy już zaimportowane odpowiednie moduły, zdefiniowany rozdział pomiędzy trybem pracy z interfejsem graficznym a trybem tekstowym i wyświetlenie pomocy w konsoli, przystępujemy do uzupełnienia pliku o kod odpowiadający za wybór sposobu szyfrowania treści.
Linia 1. kratka teraz część odpowiedzialna za działanie nieinteraktywne.
Linia 2. if app podkreślnik main kropka tryb podkreślnik pracy znak równości znak równości cudzysłów script cudzysłów dwukropek.
Linia 3. kratka spradzenie przecinek czy nie trzeba pomocy kropka kropka kropka.
Linia 4. opcja podkreślnik 1 znak równości sys kropka argv otwórz nawias kwadratowy 1 zamknij nawias kwadratowy.
Linia 5. if otwórz nawias okrągły opcja podkreślnik 1 znak równości znak równości cudzysłów minus minus help cudzysłów.
Linia 6. or not opcja podkreślnik 1 in app podkreślnik main kropka rodzaje podkreślnik szyfrowania.
Linia 7. zamknij nawias okrągły dwukropek.
Linia 8. pomoc otwórz nawias okrągły app podkreślnik main zamknij nawias okrągły.
Linia 9. else dwukropek.
Linia 10. if opcja podkreślnik 1 znak równości znak równości cudzysłów cezar cudzysłów dwukropek.
Linia 11. szyfrogram znak równości cezar podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek int otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły.
Linia 12. if opcja podkreślnik 1 znak równości znak równości cudzysłów plf cudzysłów dwukropek.
Linia 13. szyfrogram znak równości plf podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 14. if opcja podkreślnik 1 znak równości znak równości cudzysłów vig cudzysłów dwukropek.
Linia 15. szyfrogram znak równości vig podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 16. if opcja podkreślnik 1 znak równości znak równości cudzysłów plot cudzysłów dwukropek.
Linia 17. szyfrogram znak równości plot podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek int otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły.
Linia 18. kratka na końcu zapisujemy dziennik i wyświetlamy na ekranie.
Linia 19. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy opcja podkreślnik 1 zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 20. print otwórz nawias okrągły f cudzysłów Szyfrogram dwukropek otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 21. kratka zakończenie działania programu.
Linia 22. logging kropka shutdown otwórz nawias okrągły zamknij nawias okrągły.
Linia 23. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Oto wyniki działania różnych sposobów szyfrowania w terminalu:
R1P96Kdp1WTPV
Możemy sprawdzić również zawartość pliku app_dziennik.log:
Linia 1. INFO dwukropek root dwukropek otwórz nawias okrągły 2020 minus 07 minus 17 10 dwukropek 34 dwukropek 19 kropka 042219 zamknij nawias okrągły minus Szyfrowanie dwukropek cezar kreska pionowa LinuxToSystemOperacyjny minus zamknij nawias ostrokątny TqvcfBwAgabmuWxmzikgrvg.
Linia 2. INFO dwukropek root dwukropek otwórz nawias okrągły 2020 minus 07 minus 17 10 dwukropek 34 dwukropek 36 kropka 636107 zamknij nawias okrągły minus Szyfrowanie dwukropek plf kreska pionowa LinuxToSystemOperacyjny minus zamknij nawias ostrokątny otwórz nawias okrągły apostrof FREPHWDZLOGPTSNKCLHADEVH apostrof przecinek otwórz nawias kwadratowy apostrof P apostrof przecinek apostrof Y apostrof przecinek apostrof T apostrof przecinek apostrof H apostrof przecinek apostrof O apostrof przecinek apostrof N apostrof przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof C apostrof przecinek apostrof D apostrof przecinek apostrof E apostrof przecinek apostrof F apostrof przecinek apostrof G apostrof przecinek apostrof I apostrof przecinek apostrof J apostrof przecinek apostrof K apostrof przecinek apostrof L apostrof przecinek apostrof M apostrof przecinek apostrof R apostrof przecinek apostrof S apostrof przecinek apostrof U apostrof przecinek apostrof V apostrof przecinek apostrof W apostrof przecinek apostrof X apostrof przecinek apostrof Z apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 3. INFO dwukropek root dwukropek otwórz nawias okrągły 2020 minus 07 minus 17 10 dwukropek 35 dwukropek 06 kropka 166335 zamknij nawias okrągły minus Szyfrowanie dwukropek vig kreska pionowa LinuxToSystemOperacyjny minus zamknij nawias ostrokątny AGGBLGDQRZHRBMILFNRWCUM.
Linia 4. INFO dwukropek root dwukropek otwórz nawias okrągły 2020 minus 07 minus 17 10 dwukropek 35 dwukropek 19 kropka 765599 zamknij nawias okrągły minus Szyfrowanie dwukropek plot kreska pionowa LinuxToSystemOperacyjny minus zamknij nawias ostrokątny LpiOenmrueaxtcTsyoyjySn.
1
Przykład 5
Następnie w pliku app_glowna.py piszemy kod odpowiedzialny za stworzenie głównego okna programu w trybie GUI i najważniejsze operacje.
Linia 1. kratka teraz część odpowiedzialna za działanie interaktywne otwórz nawias okrągły graficzny interfejs zamknij nawias okrągły.
Linia 2. if app podkreślnik main kropka tryb podkreślnik pracy znak równości znak równości cudzysłów gui cudzysłów dwukropek.
Linia 3. kratka definiujemy elementy menu dwukropek.
Linia 4. menu podkreślnik def znak równości otwórz nawias kwadratowy otwórz nawias kwadratowy cudzysłów Menu główne cudzysłów przecinek otwórz nawias kwadratowy cudzysłów Szyfr Cezara cudzysłów przecinek cudzysłów Szyfr Playfair cudzysłów przecinek cudzysłów Szyfr Vigenere apostrof a cudzysłów przecinek cudzysłów Szyfr Płotkowy cudzysłów zamknij nawias kwadratowy zamknij nawias kwadratowy przecinek.
Linia 5. otwórz nawias kwadratowy cudzysłów Informacje cudzysłów przecinek otwórz nawias kwadratowy cudzysłów O programie cudzysłów przecinek cudzysłów Koniec pracy cudzysłów zamknij nawias kwadratowy zamknij nawias kwadratowy przecinek.
Linia 6. zamknij nawias kwadratowy.
Linia 8. layout znak równości otwórz nawias kwadratowy.
Linia 9. otwórz nawias kwadratowy sg kropka Menu otwórz nawias okrągły menu podkreślnik def przecinek zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 10. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Program dwukropek cudzysłów plus app podkreślnik main kropka app podkreślnik name zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 11. zamknij nawias kwadratowy.
Linia 13. window znak równości sg kropka Window otwórz nawias okrągły app podkreślnik main kropka app podkreślnik name przecinek layout przecinek auto podkreślnik size podkreślnik text znak równości False zamknij nawias okrągły.
Linia 16. while True dwukropek.
Linia 17. event przecinek values znak równości window kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 18. if event znak równości znak równości cudzysłów O programie cudzysłów dwukropek.
Linia 19. sg kropka popup otwórz nawias okrągły cudzysłów O programie cudzysłów przecinek apostrof Wersja 1 kropka 0 apostrof przecinek apostrof Szyfrowanie w PySimpleGUI kropka kropka kropka apostrof zamknij nawias okrągły.
Linia 20. if event znak równości znak równości apostrof Koniec pracy apostrof or event znak równości znak równości None dwukropek.
Linia 21. wynik znak równości sg kropka popup podkreślnik yes podkreślnik no otwórz nawias okrągły cudzysłów KONIEC cudzysłów przecinek cudzysłów Czy chcesz zakończyć znak zapytania cudzysłów zamknij nawias okrągły.
Linia 22. if wynik kropka upper otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości cudzysłów YES cudzysłów dwukropek.
Linia 23. logging kropka shutdown otwórz nawias okrągły zamknij nawias okrągły.
Linia 24. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Na ilustracji widzimy wynik działania opcji O programie na tle edytora kodu Atom. Jak możemy zauważyć, kod na zdjęciu różni się od kodu wynikowego. Zrzut ekranu został wykonany na etapie testowania kodu.
RQe1MoE0u1hn2
Przygotowujemy w pliku część kodu umożliwiającą wyświetlanie odpowiednich okien dialogowych w zależności od wybranego sposobu szyfrowania. Ponieważ rodzaj szyfrowania zależy od wartości zmiennej event, możemy ją wykorzystać również do tworzenia opisów w oknach dialogowych.
Linia 1. kratka tworzymy odpowiednie definicje okien.
Linia 2. layout podkreślnik cez podkreślnik plot znak równości otwórz nawias kwadratowy.
Linia 3. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj tekst jawny otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 4. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów dane cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 5. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Opcja dwukropek przesunięcie prawy ukośnik płotek cudzysłów zamknij nawias okrągły przecinek sg kropka Input otwórz nawias okrągły size znak równości otwórz nawias okrągły 3 przecinek 1 zamknij nawias okrągły przecinek key znak równości cudzysłów k cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 6. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Zaszyfruj apostrof przecinek cudzysłów RADIO1 cudzysłów przecinek default znak równości True przecinek key znak równości cudzysłów Radio1 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 7. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Odszyfruj apostrof przecinek cudzysłów RADIO1 cudzysłów przecinek default znak równości False przecinek key znak równości cudzysłów Radio2 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 8. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Tekst wynikowy dwukropek cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 9. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów cudzysłów asterysk 40 przecinek size znak równości otwórz nawias okrągły 40 przecinek 1 zamknij nawias okrągły przecinek auto podkreślnik size podkreślnik text znak równości True przecinek key znak równości cudzysłów minus OUT minus cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 10. otwórz nawias kwadratowy sg kropka Button otwórz nawias okrągły apostrof Wykonaj apostrof zamknij nawias okrągły przecinek sg kropka Exit otwórz nawias okrągły zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias kwadratowy.
Linia 13. layout podkreślnik plf podkreślnik vin znak równości otwórz nawias kwadratowy.
Linia 14. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj tekst jawny otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 15. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów dane cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 16. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj klucz do tworzenia tablicy otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 17. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów klucz cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 18. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów cudzysłów asterysk 40 przecinek size znak równości otwórz nawias okrągły 40 przecinek 1 zamknij nawias okrągły przecinek auto podkreślnik size podkreślnik text znak równości True przecinek key znak równości cudzysłów minus OUT minus cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 19. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Zaszyfruj apostrof przecinek cudzysłów RADIO2 cudzysłów przecinek default znak równości True przecinek key znak równości cudzysłów Radio1 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 20. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Odszyfruj apostrof średnik przecinek cudzysłów RADIO2 cudzysłów przecinek default znak równości False przecinek key znak równości cudzysłów Radio2 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 21. otwórz nawias kwadratowy sg kropka Button otwórz nawias okrągły apostrof Wykonaj apostrof zamknij nawias okrągły przecinek sg kropka Exit otwórz nawias okrągły zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias kwadratowy.
Linia 22. kratka aby móc modyfikować elementy okna przecinek musimy tworzyć okna z parametrem finalize znak równości True.
Linia 23. kratka oraz ukryć okno na początku działania programu.
Linia 24. kratka więcej informacji otwórz nawias kwadratowy w zgłoszeniach biblioteki zamknij nawias kwadratowy otwórz nawias okrągły https dwukropek prawy ukośnik prawy ukośnik github kropka com prawy ukośnik PySimpleGUI prawy ukośnik PySimpleGUI prawy ukośnik issues prawy ukośnik 1276 zamknij nawias okrągły oraz otwórz nawias kwadratowy w dokumentacji biblioeki zamknij nawias kwadratowy otwórz nawias okrągły https dwukropek prawy ukośnik prawy ukośnik pysimplegui kropka readthedocs kropka io prawy ukośnik en prawy ukośnik latest prawy ukośnik cookbook prawy ukośnik kratka persistent minus window minus with minus text minus element minus updates zamknij nawias okrągły.
Linia 25. okno podkreślnik cez podkreślnik plot znak równości sg kropka Window otwórz nawias okrągły cudzysłów Szyfrowanie cudzysłów przecinek layout podkreślnik cez podkreślnik plot przecinek finalize znak równości True zamknij nawias okrągły.
Linia 26. okno podkreślnik plf podkreślnik vig znak równości sg kropka Window otwórz nawias okrągły cudzysłów Szyfrowanie cudzysłów przecinek layout podkreślnik plf podkreślnik vin przecinek finalize znak równości True zamknij nawias okrągły.
Linia 27. kratka ukrywamy widoczność okien.
Linia 28. okno podkreślnik cez podkreślnik plot kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 29. okno podkreślnik plf podkreślnik vig kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 31. kratka główna pętla programu.
Linia 32. while True dwukropek.
Linia 33. event przecinek values znak równości window kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 34. if event znak równości znak równości cudzysłów O programie cudzysłów dwukropek.
Linia 35. sg kropka popup otwórz nawias okrągły cudzysłów O programie cudzysłów przecinek apostrof Wersja 1 kropka 0 apostrof przecinek apostrof Szyfrowanie w PySimpleGUI kropka kropka kropka apostrof zamknij nawias okrągły.
Linia 37. kratka w zależności od rodzaju szyfrowania wyświetlamy odpowiednie okna.
Linia 38. if event znak równości znak równości cudzysłów Szyfr Cezara cudzysłów or event znak równości znak równości cudzysłów Szyfr Płotkowy cudzysłów dwukropek.
Linia 39. okno podkreślnik cez podkreślnik plot kropka UnHide otwórz nawias okrągły zamknij nawias okrągły.
Linia 40. while True dwukropek.
Linia 41. kratka wyświetlamy okno o odpowiedniej nazwie.
Linia 42. okno podkreślnik cez podkreślnik plot kropka TKroot kropka title otwórz nawias okrągły event zamknij nawias okrągły.
Linia 43. dzialaj przecinek wartosci znak równości okno podkreślnik cez podkreślnik plot kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 44. if dzialaj znak równości znak równości cudzysłów Wykonaj cudzysłów dwukropek.
Linia 45. kratka staramy się odczytać dane.
Linia 46. try dwukropek.
Linia 47. klucz znak równości int otwórz nawias okrągły wartosci otwórz nawias kwadratowy cudzysłów k cudzysłów zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 48. tekst podkreślnik jawny znak równości wartosci otwórz nawias kwadratowy cudzysłów dane cudzysłów zamknij nawias kwadratowy.
Linia 49. kratka w przypadku niepowodzenia przyjmujemy wartości domyślne.
Linia 50. except dwukropek.
Linia 51. klucz znak równości 3.
Linia 52. tekst podkreślnik jawny znak równości cudzysłów TEKST cudzysłów.
Linia 54. kratka wykonujemy fyzyczne szyfrowanie.
Linia 55. if event znak równości znak równości cudzysłów Szyfr Cezara cudzysłów dwukropek.
Linia 56. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 57. szyfrogram znak równości cezar podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 58. else dwukropek.
Linia 59. szyfrogram znak równości cezar podkreślnik deszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 60. else dwukropek.
Linia 61. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 62. szyfrogram znak równości plot podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 63. else dwukropek.
Linia 64. szyfrogram znak równości plot podkreślnik odszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 65. kratka aktualizujemy wynikowy szyfrogram.
Linia 66. okno podkreślnik cez podkreślnik plot otwórz nawias kwadratowy cudzysłów minus OUT minus cudzysłów zamknij nawias kwadratowy kropka update otwórz nawias okrągły szyfrogram zamknij nawias okrągły.
Linia 67. kratka zapisujemy dziennik.
Linia 68. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy event zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy tekst podkreślnik jawny zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 69. else dwukropek.
Linia 70. kratka ukrywamy okno i wracamy do głównej pętli.
Linia 71. okno podkreślnik cez podkreślnik plot kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 72. break.
Linia 74. if event znak równości znak równości cudzysłów Szyfr Playfair cudzysłów or event znak równości znak równości cudzysłów Szyfr Vigenere apostrof a cudzysłów dwukropek.
Linia 75. okno podkreślnik plf podkreślnik vig kropka UnHide otwórz nawias okrągły zamknij nawias okrągły.
Linia 76. while True dwukropek.
Linia 77. kratka wyświetlamy okno o odpowiedniej nazwie.
Linia 78. okno podkreślnik plf podkreślnik vig kropka TKroot kropka title otwórz nawias okrągły event zamknij nawias okrągły.
Linia 79. dzialaj przecinek wartosci znak równości okno podkreślnik plf podkreślnik vig kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 80. if dzialaj znak równości znak równości cudzysłów Wykonaj cudzysłów dwukropek.
Linia 81. kratka staramy się odczytać dane.
Linia 82. try dwukropek.
Linia 83. tekst podkreślnik jawny znak równości wartosci otwórz nawias kwadratowy cudzysłów dane cudzysłów zamknij nawias kwadratowy.
Linia 84. klucz podkreślnik txt znak równości wartosci otwórz nawias kwadratowy cudzysłów klucz cudzysłów zamknij nawias kwadratowy.
Linia 85. kratka w przypadku niepowodzenia przyjmujemy wartości domyślne.
Linia 86. except dwukropek.
Linia 87. klucz podkreślnik txt znak równości cudzysłów KLUCZ cudzysłów.
Linia 88. tekst podkreślnik jawny znak równości cudzysłów TEKST cudzysłów.
Linia 90. kratka wykonujemy fyzyczne szyfrowanie.
Linia 91. if event znak równości znak równości cudzysłów Szyfr Playfair cudzysłów dwukropek.
Linia 92. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 93. szyfrogram znak równości plf podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 94. wynik znak równości szyfrogram otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 95. else dwukropek.
Linia 96. szyfrogram znak równości plf podkreślnik odszyfruj otwórz nawias okrągły otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły zamknij nawias okrągły.
Linia 97. wynik znak równości szyfrogram.
Linia 98. else dwukropek.
Linia 99. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 100. szyfrogram znak równości vig podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 101. else dwukropek.
Linia 102. szyfrogram znak równości vig podkreślnik odszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 103. wynik znak równości szyfrogram.
Linia 104. kratka aktualizujemy wynikowy szyfrogram.
Linia 105. okno podkreślnik plf podkreślnik vig otwórz nawias kwadratowy cudzysłów minus OUT minus cudzysłów zamknij nawias kwadratowy kropka update otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 106. kratka zapisujemy dziennik.
Linia 107. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy event zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy tekst podkreślnik jawny zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 108. else dwukropek.
Linia 109. kratka ukrywamy okno i wracamy do głównej pętli.
Linia 110. okno podkreślnik plf podkreślnik vig kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 111. break.
A oto wyniki działania wszystkich opcji szyfrowania na tle edytora kodu Atom:
Rc5oeTKpa6FpN1
RilBbbNqKmJEf1
RiIqwjL3lKkDW1
R1ByWJdXl2psA1
Roe2kBRY6MQd61
RrFiSLWmnksEa1
R5yzKTfhT7PQE1
R11eLaUFlFTCu1
1
Ważne!
Ze względu na fakt, że używane przez nas szyfry nie operują na wszystkich znakach dostępnych w tablicy ASCII, do modułu app_funkcje.py zostały dopisane dwie funkcje dostosowujące przekazany do nich łańcuch znaków do wymogów szyfrów. Pierwsza z nich wykorzystywana w szyfrze Cezara, płotkowym i Vigenère'a zwraca tekst złożony wyłącznie z alfabetu łacińskiego. Druga natomiast dostosowuje przekazany jej łańcuch znaków do wymogów szyfru Playfair, czyli alfabetu łacińskiego pozbawionego litery 'Q'. Wykorzystywane są one następnie w kodzie odpowiedzialnym za realizację wspomnianych szyfrów.
Linia 1. kratka funkcja usuwa nieobsługiwane przez szyfry Cezara przecinek Vigenere apostrof a i płotkowy znaki otwórz nawias okrągły wszystko co nie jest literą alfabetu łacińskiego lub spacją zamknij nawias okrągły.
Linia 2. def usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły przygotowywany podkreślnik tekst dwukropek str zamknij nawias okrągły dwukropek.
Linia 3. tekst znak równości cudzysłów cudzysłów.
Linia 4. for litera in przygotowywany podkreślnik tekst dwukropek.
Linia 5. if otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły or otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły or ord otwórz nawias okrągły litera zamknij nawias okrągły znak równości znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły dwukropek.
Linia 6. tekst plus znak równości litera.
Linia 7. return tekst.
Linia 9. kratka funkcja usuwa nieobsługiwane przez szyfr Playfair znaki otwórz nawias okrągły wszystko co nie jest literą alfabetu łacińskiego oraz literę apostrof Q apostrof zamknij nawias okrągły.
Linia 10. def usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair otwórz nawias okrągły przygotowywany podkreślnik tekst dwukropek str zamknij nawias okrągły dwukropek.
Linia 11. tekst znak równości cudzysłów cudzysłów.
Linia 12. for litera in przygotowywany podkreślnik tekst dwukropek.
Linia 13. if otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły or otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły and otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły wykrzyknik znak równości ord otwórz nawias okrągły apostrof q apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły wykrzyknik znak równości ord otwórz nawias okrągły apostrof Q apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 14. tekst plus znak równości litera.
Linia 15. return tekst.
1
Ważne!
Kody źródłowe najlepiej przechowywać w serwisach specjalnie przeznaczonych do tego celu. Jednym z nich jest GitHub, dostępny dla wszystkich.
Pełny kod źródłowy wszystkich plików programu wygląda następująco:
Linia 1. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 2. kratka app podkreślnik glowna kropka py otwórz nawias ostrokątny minus to nazwa pliku przecinek do którego należy zapisać oznaczony kod.
Linia 3. kratka importy standardowych modułów minus one powinny być dostępne zawsze.
Linia 4. import sys.
Linia 5. import logging.
Linia 7. kratka próba importu modułów zawierających funkcje dodatkowe i szyfrujące.
Linia 8. try dwukropek.
Linia 9. from app podkreślnik funkcje import asterysk.
Linia 10. from cezara import asterysk.
Linia 11. from playfair import asterysk.
Linia 12. from plotkowy import asterysk.
Linia 13. from vigenere import asterysk.
Linia 14. except dwukropek.
Linia 15. kratka informacja dla użytkownika przecinek jeśli wystąpił jakiś błąd.
Linia 16. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 17. kratka oraz zakończenie działania aplikacji.
Linia 18. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 20. kratka zdefiniowanie pliku dziennika aplikacji i jego minimalnej konfiguracji.
Linia 21. logging kropka basicConfig otwórz nawias okrągły filename znak równości cudzysłów app podkreślnik dziennik kropka log cudzysłów przecinek filemode znak równości cudzysłów a cudzysłów przecinek level znak równości logging kropka INFO zamknij nawias okrągły.
Linia 23. kratka próba importu zewnętrznych modułów.
Linia 24. try dwukropek.
Linia 25. import PySimpleGUI as sg.
Linia 26. except dwukropek.
Linia 27. kratka informacja dla użytkownika przecinek jeśli moduł nie jest zainstalowany.
Linia 28. print otwórz nawias okrągły cudzysłów Brak modułu PySimpleGUI minus dodaj go narzędziem pip cudzysłów zamknij nawias okrągły.
Linia 29. kratka oraz zakończenie działania aplikacji.
Linia 30. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 33. kratka zdefiniowanie pustej klasy dla celów przetrzymywania krytycznych informacji.
Linia 34. class APP dwukropek.
Linia 35. pass.
Linia 37. kratka oraz instancji tej klasy.
Linia 38. app podkreślnik main znak równości APP otwórz nawias okrągły zamknij nawias okrągły.
Linia 40. kratka przypisujemy pewne właściwości.
Linia 41. app podkreślnik main kropka app podkreślnik name znak równości cudzysłów Aplikacja szyfrująca cudzysłów.
Linia 42. app podkreślnik main kropka rodzaje podkreślnik szyfrowania znak równości otwórz nawias kwadratowy cudzysłów cezar cudzysłów przecinek cudzysłów plf cudzysłów przecinek cudzysłów vig cudzysłów przecinek cudzysłów plot cudzysłów zamknij nawias kwadratowy.
Linia 44. kratka sprawdzamy przecinek czy aplikacja została wywołana z jakimkolwiek parametrem przecinek wówczas ustawiamy właściwość trybu pracy.
Linia 45. if len otwórz nawias okrągły sys kropka argv zamknij nawias okrągły zamknij nawias ostrokątny 1 dwukropek.
Linia 46. app podkreślnik main kropka tryb podkreślnik pracy znak równości cudzysłów script cudzysłów.
Linia 47. else dwukropek.
Linia 48. app podkreślnik main kropka tryb podkreślnik pracy znak równości cudzysłów gui cudzysłów.
Linia 51. kratka teraz część odpowiedzialna za działanie nieinteraktywne.
Linia 52. if app podkreślnik main kropka tryb podkreślnik pracy znak równości znak równości cudzysłów script cudzysłów dwukropek.
Linia 53. kratka spradzenie przecinek czy nie trzeba pomocy kropka kropka kropka.
Linia 54. opcja podkreślnik 1 znak równości sys kropka argv otwórz nawias kwadratowy 1 zamknij nawias kwadratowy.
Linia 55. if otwórz nawias okrągły opcja podkreślnik 1 znak równości znak równości cudzysłów minus minus help cudzysłów.
Linia 56. or not opcja podkreślnik 1 in app podkreślnik main kropka rodzaje podkreślnik szyfrowania.
Linia 57. zamknij nawias okrągły dwukropek.
Linia 58. pomoc otwórz nawias okrągły app podkreślnik main zamknij nawias okrągły.
Linia 59. else dwukropek.
Linia 60. if opcja podkreślnik 1 znak równości znak równości cudzysłów cezar cudzysłów dwukropek.
Linia 61. szyfrogram znak równości cezar podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek int otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły.
Linia 62. if opcja podkreślnik 1 znak równości znak równości cudzysłów plf cudzysłów dwukropek.
Linia 63. szyfrogram znak równości plf podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 64. if opcja podkreślnik 1 znak równości znak równości cudzysłów vig cudzysłów dwukropek.
Linia 65. szyfrogram znak równości vig podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 66. if opcja podkreślnik 1 znak równości znak równości cudzysłów plot cudzysłów dwukropek.
Linia 67. szyfrogram znak równości plot podkreślnik szyfruj otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek int otwórz nawias okrągły sys kropka argv otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły.
Linia 68. kratka na końcu zapisujemy dziennik i wyświetlamy na ekranie.
Linia 69. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy opcja podkreślnik 1 zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy sys kropka argv otwórz nawias kwadratowy 2 zamknij nawias kwadratowy zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 70. print otwórz nawias okrągły f cudzysłów Szyfrogram dwukropek otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 71. kratka zakończenie działania programu.
Linia 72. logging kropka shutdown otwórz nawias okrągły zamknij nawias okrągły.
Linia 73. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 76. kratka teraz część odpowiedzialna za działanie interaktywne otwórz nawias okrągły graficzny interfejs zamknij nawias okrągły.
Linia 77. if app podkreślnik main kropka tryb podkreślnik pracy znak równości znak równości cudzysłów gui cudzysłów dwukropek.
Linia 78. kratka definiujemy elementy menu dwukropek.
Linia 79. menu podkreślnik def znak równości otwórz nawias kwadratowy otwórz nawias kwadratowy cudzysłów Menu główne cudzysłów przecinek otwórz nawias kwadratowy cudzysłów Szyfr Cezara cudzysłów przecinek cudzysłów Szyfr Playfair cudzysłów przecinek cudzysłów Szyfr Vigenere apostrof a cudzysłów przecinek cudzysłów Szyfr Płotkowy cudzysłów zamknij nawias kwadratowy zamknij nawias kwadratowy przecinek.
Linia 80. otwórz nawias kwadratowy cudzysłów Informacje cudzysłów przecinek otwórz nawias kwadratowy cudzysłów O programie cudzysłów przecinek cudzysłów Koniec pracy cudzysłów zamknij nawias kwadratowy zamknij nawias kwadratowy przecinek.
Linia 81. zamknij nawias kwadratowy.
Linia 83. layout znak równości otwórz nawias kwadratowy.
Linia 84. otwórz nawias kwadratowy sg kropka Menu otwórz nawias okrągły menu podkreślnik def przecinek zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 85. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Program dwukropek cudzysłów plus app podkreślnik main kropka app podkreślnik name zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 86. zamknij nawias kwadratowy.
Linia 88. window znak równości sg kropka Window otwórz nawias okrągły app podkreślnik main kropka app podkreślnik name przecinek layout przecinek auto podkreślnik size podkreślnik text znak równości False zamknij nawias okrągły.
Linia 90. kratka tworzymy odpowiednie definicje okien.
Linia 91. layout podkreślnik cez podkreślnik plot znak równości otwórz nawias kwadratowy.
Linia 92. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj tekst jawny otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 93. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów dane cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 94. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Opcja dwukropek przesunięcie prawy ukośnik płotek cudzysłów zamknij nawias okrągły przecinek sg kropka Input otwórz nawias okrągły size znak równości otwórz nawias okrągły 3 przecinek 1 zamknij nawias okrągły przecinek key znak równości cudzysłów k cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 95. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Zaszyfruj apostrof przecinek cudzysłów RADIO1 cudzysłów przecinek default znak równości True przecinek key znak równości cudzysłów Radio1 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 96. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Odszyfruj apostrof przecinek cudzysłów RADIO1 cudzysłów przecinek default znak równości False przecinek key znak równości cudzysłów Radio2 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 97. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Tekst wynikowy dwukropek cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 98. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów cudzysłów asterysk 40 przecinek size znak równości otwórz nawias okrągły 40 przecinek 1 zamknij nawias okrągły przecinek auto podkreślnik size podkreślnik text znak równości True przecinek key znak równości cudzysłów minus OUT minus cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 99. otwórz nawias kwadratowy sg kropka Button otwórz nawias okrągły apostrof Wykonaj apostrof zamknij nawias okrągły przecinek sg kropka Exit otwórz nawias okrągły zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias kwadratowy.
Linia 102. layout podkreślnik plf podkreślnik vin znak równości otwórz nawias kwadratowy.
Linia 103. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj tekst jawny otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 104. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów dane cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 105. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów Podaj klucz do tworzenia tablicy otwórz nawias okrągły max kropka 35 znaków zamknij nawias okrągły cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 106. otwórz nawias kwadratowy sg kropka Input otwórz nawias okrągły key znak równości cudzysłów klucz cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 107. otwórz nawias kwadratowy sg kropka Text otwórz nawias okrągły cudzysłów cudzysłów asterysk 40 przecinek size znak równości otwórz nawias okrągły 40 przecinek 1 zamknij nawias okrągły przecinek auto podkreślnik size podkreślnik text znak równości True przecinek key znak równości cudzysłów minus OUT minus cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 108. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Zaszyfruj apostrof przecinek cudzysłów RADIO2 cudzysłów przecinek default znak równości True przecinek key znak równości cudzysłów Radio1 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 109. otwórz nawias kwadratowy sg kropka Radio otwórz nawias okrągły apostrof Odszyfruj apostrof przecinek cudzysłów RADIO2 cudzysłów przecinek default znak równości False przecinek key znak równości cudzysłów Radio2 cudzysłów zamknij nawias okrągły zamknij nawias kwadratowy przecinek.
Linia 110. otwórz nawias kwadratowy sg kropka Button otwórz nawias okrągły apostrof Wykonaj apostrof zamknij nawias okrągły przecinek sg kropka Exit otwórz nawias okrągły zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias kwadratowy.
Linia 111. kratka aby móc modyfikować elementy okna przecinek musimy tworzyć okna z parametrem finalize znak równości True.
Linia 112. kratka oraz ukryć okno na początku działania programu.
Linia 113. kratka więcej informacji otwórz nawias kwadratowy w zgłoszeniach biblioteki zamknij nawias kwadratowy otwórz nawias okrągły https dwukropek prawy ukośnik prawy ukośnik github kropka com prawy ukośnik PySimpleGUI prawy ukośnik PySimpleGUI prawy ukośnik issues prawy ukośnik 1276 zamknij nawias okrągły oraz otwórz nawias kwadratowy w dokumentacji biblioeki zamknij nawias kwadratowy otwórz nawias okrągły https dwukropek prawy ukośnik prawy ukośnik pysimplegui kropka readthedocs kropka io prawy ukośnik en prawy ukośnik latest prawy ukośnik cookbook prawy ukośnik kratka persistent minus window minus with minus text minus element minus updates zamknij nawias okrągły.
Linia 114. okno podkreślnik cez podkreślnik plot znak równości sg kropka Window otwórz nawias okrągły cudzysłów Szyfrowanie cudzysłów przecinek layout podkreślnik cez podkreślnik plot przecinek finalize znak równości True zamknij nawias okrągły.
Linia 115. okno podkreślnik plf podkreślnik vig znak równości sg kropka Window otwórz nawias okrągły cudzysłów Szyfrowanie cudzysłów przecinek layout podkreślnik plf podkreślnik vin przecinek finalize znak równości True zamknij nawias okrągły.
Linia 116. kratka ukrywamy widoczność okien.
Linia 117. okno podkreślnik cez podkreślnik plot kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 118. okno podkreślnik plf podkreślnik vig kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 120. kratka główna pętla programu.
Linia 121. while True dwukropek.
Linia 122. event przecinek values znak równości window kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 123. if event znak równości znak równości cudzysłów O programie cudzysłów dwukropek.
Linia 124. sg kropka popup otwórz nawias okrągły cudzysłów O programie cudzysłów przecinek apostrof Wersja 1 kropka 0 apostrof przecinek apostrof Szyfrowanie w PySimpleGUI kropka kropka kropka apostrof zamknij nawias okrągły.
Linia 126. kratka w zależności od rodzaju szyfrowania wyświetlamy odpowiednie okna.
Linia 127. if event znak równości znak równości cudzysłów Szyfr Cezara cudzysłów or event znak równości znak równości cudzysłów Szyfr Płotkowy cudzysłów dwukropek.
Linia 128. okno podkreślnik cez podkreślnik plot kropka UnHide otwórz nawias okrągły zamknij nawias okrągły.
Linia 129. while True dwukropek.
Linia 130. kratka wyświetlamy okno o odpowiedniej nazwie.
Linia 131. okno podkreślnik cez podkreślnik plot kropka TKroot kropka title otwórz nawias okrągły event zamknij nawias okrągły.
Linia 132. dzialaj przecinek wartosci znak równości okno podkreślnik cez podkreślnik plot kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 133. if dzialaj znak równości znak równości cudzysłów Wykonaj cudzysłów dwukropek.
Linia 134. kratka staramy się odczytać dane.
Linia 135. try dwukropek.
Linia 136. klucz znak równości int otwórz nawias okrągły wartosci otwórz nawias kwadratowy cudzysłów k cudzysłów zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 137. tekst podkreślnik jawny znak równości wartosci otwórz nawias kwadratowy cudzysłów dane cudzysłów zamknij nawias kwadratowy.
Linia 138. kratka w przypadku niepowodzenia przyjmujemy wartości domyślne.
Linia 139. except dwukropek.
Linia 140. klucz znak równości 3.
Linia 141. tekst podkreślnik jawny znak równości cudzysłów TEKST cudzysłów.
Linia 143. kratka wykonujemy fyzyczne szyfrowanie.
Linia 144. if event znak równości znak równości cudzysłów Szyfr Cezara cudzysłów dwukropek.
Linia 145. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 146. szyfrogram znak równości cezar podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 147. else dwukropek.
Linia 148. szyfrogram znak równości cezar podkreślnik deszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 149. else dwukropek.
Linia 150. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 151. szyfrogram znak równości plot podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 152. else dwukropek.
Linia 153. szyfrogram znak równości plot podkreślnik odszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz zamknij nawias okrągły.
Linia 154. kratka aktualizujemy wynikowy szyfrogram.
Linia 155. okno podkreślnik cez podkreślnik plot otwórz nawias kwadratowy cudzysłów minus OUT minus cudzysłów zamknij nawias kwadratowy kropka update otwórz nawias okrągły szyfrogram zamknij nawias okrągły.
Linia 156. kratka zapisujemy dziennik.
Linia 157. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy event zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy tekst podkreślnik jawny zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 158. else dwukropek.
Linia 159. kratka ukrywamy okno i wracamy do głównej pętli.
Linia 160. okno podkreślnik cez podkreślnik plot kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 161. break.
Linia 163. if event znak równości znak równości cudzysłów Szyfr Playfair cudzysłów or event znak równości znak równości cudzysłów Szyfr Vigenere apostrof a cudzysłów dwukropek.
Linia 164. okno podkreślnik plf podkreślnik vig kropka UnHide otwórz nawias okrągły zamknij nawias okrągły.
Linia 165. while True dwukropek.
Linia 166. kratka wyświetlamy okno o odpowiedniej nazwie.
Linia 167. okno podkreślnik plf podkreślnik vig kropka TKroot kropka title otwórz nawias okrągły event zamknij nawias okrągły.
Linia 168. dzialaj przecinek wartosci znak równości okno podkreślnik plf podkreślnik vig kropka read otwórz nawias okrągły zamknij nawias okrągły.
Linia 169. if dzialaj znak równości znak równości cudzysłów Wykonaj cudzysłów dwukropek.
Linia 170. kratka staramy się odczytać dane.
Linia 171. try dwukropek.
Linia 172. tekst podkreślnik jawny znak równości wartosci otwórz nawias kwadratowy cudzysłów dane cudzysłów zamknij nawias kwadratowy.
Linia 173. klucz podkreślnik txt znak równości wartosci otwórz nawias kwadratowy cudzysłów klucz cudzysłów zamknij nawias kwadratowy.
Linia 174. kratka w przypadku niepowodzenia przyjmujemy wartości domyślne.
Linia 175. except dwukropek.
Linia 176. klucz podkreślnik txt znak równości cudzysłów KLUCZ cudzysłów.
Linia 177. tekst podkreślnik jawny znak równości cudzysłów TEKST cudzysłów.
Linia 179. kratka wykonujemy fizyczne szyfrowanie.
Linia 180. if event znak równości znak równości cudzysłów Szyfr Playfair cudzysłów dwukropek.
Linia 181. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 182. szyfrogram znak równości plf podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 183. wynik znak równości szyfrogram otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 184. else dwukropek.
Linia 185. szyfrogram znak równości plf podkreślnik odszyfruj otwórz nawias okrągły otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły zamknij nawias okrągły.
Linia 186. wynik znak równości szyfrogram.
Linia 187. else dwukropek.
Linia 188. if wartosci otwórz nawias kwadratowy cudzysłów Radio1 cudzysłów zamknij nawias kwadratowy znak równości znak równości True dwukropek.
Linia 189. szyfrogram znak równości vig podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 190. else dwukropek.
Linia 191. szyfrogram znak równości vig podkreślnik odszyfruj otwórz nawias okrągły tekst podkreślnik jawny przecinek klucz podkreślnik txt zamknij nawias okrągły.
Linia 192. wynik znak równości szyfrogram.
Linia 193. kratka aktualizujemy wynikowy szyfrogram.
Linia 194. okno podkreślnik plf podkreślnik vig otwórz nawias kwadratowy cudzysłów minus OUT minus cudzysłów zamknij nawias kwadratowy kropka update otwórz nawias okrągły wynik zamknij nawias okrągły.
Linia 195. kratka zapisujemy dziennik.
Linia 196. zapis podkreślnik dziennika otwórz nawias okrągły logging przecinek f cudzysłów Szyfrowanie dwukropek otwórz nawias klamrowy event zamknij nawias klamrowy kreska pionowa otwórz nawias klamrowy tekst podkreślnik jawny zamknij nawias klamrowy minus zamknij nawias ostrokątny otwórz nawias klamrowy szyfrogram zamknij nawias klamrowy cudzysłów zamknij nawias okrągły.
Linia 197. else dwukropek.
Linia 198. kratka ukrywamy okno i wracamy do głównej pętli.
Linia 199. okno podkreślnik plf podkreślnik vig kropka Hide otwórz nawias okrągły zamknij nawias okrągły.
Linia 200. break.
Linia 202. if event znak równości znak równości apostrof Koniec pracy apostrof or event znak równości znak równości None dwukropek.
Linia 203. wynik znak równości sg kropka popup podkreślnik yes podkreślnik no otwórz nawias okrągły cudzysłów KONIEC cudzysłów przecinek cudzysłów Czy chcesz zakończyć znak zapytania cudzysłów zamknij nawias okrągły.
Linia 204. if wynik kropka upper otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości cudzysłów YES cudzysłów dwukropek.
Linia 205. logging kropka shutdown otwórz nawias okrągły zamknij nawias okrągły.
Linia 206. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 208. kratka na wszelki wypadek na końcu programu zamykamy wszystko bezpiecznie.
Linia 209. logging kropka shutdown otwórz nawias okrągły zamknij nawias okrągły.
Linia 210. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 213. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 214. kratka app podkreślnik funkcje kropka py.
Linia 215. kratka plik zawierający dodatkowe funkcje.
Linia 216. import sys.
Linia 218. def pomoc otwórz nawias okrągły app podkreślnik main dwukropek object zamknij nawias okrągły dwukropek.
Linia 219. kratka Funkcja wyświetlająca pomoc w trybie nieinteraktywnym.
Linia 221. tekst znak równości f cudzysłów cudzysłów cudzysłów.
Linia 222. Pomoc dla programu dwukropek otwórz nawias klamrowy app podkreślnik main kropka app podkreślnik name zamknij nawias klamrowy.
Linia 223. znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości znak równości.
Linia 224. Zakładamy możliwości wykonania dwukropek.
Linia 226. dla systemu Linux dwukropek.
Linia 228. $ python3 app podkreślnik glowna kropka py minus minus help minus zamknij nawias ostrokątny wyświetli ten tekst.
Linia 229. $ python3 app podkreślnik glowna kropka py otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny otwórz nawias ostrokątny tekst zamknij nawias ostrokątny otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny.
Linia 231. dla systemu Windows dwukropek.
Linia 233. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py minus help minus zamknij nawias ostrokątny wyświetli ten tekst.
Linia 234. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny otwórz nawias ostrokątny tekst zamknij nawias ostrokątny otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny.
Linia 236. otwórz nawias ostrokątny szyfr zamknij nawias ostrokątny minus możliwe opcje to otwórz nawias klamrowy app podkreślnik main kropka rodzaje podkreślnik szyfrowania zamknij nawias klamrowy minus określa rodzaj szyfrowania.
Linia 237. otwórz nawias ostrokątny tekst zamknij nawias ostrokątny minus tekst jawny do zaszyfrowania.
Linia 238. otwórz nawias ostrokątny opcje podkreślnik dla podkreślnik szyfru zamknij nawias ostrokątny minus ewentualne opcje dla szyfrowania dwukropek.
Linia 239. minus cezar znak równości liczba całkowita określająca przesunięcie w alfabecie.
Linia 240. minus plf znak równości ciąg znaków określający klucz do budowania tablicy.
Linia 241. minus vig znak równości ciąg znaków określający klucz do budowania klucza.
Linia 242. minus plot znak równości liczba całkowita określająca wysokość płotka.
Linia 244. Przykłady wywołania dwukropek.
Linia 246. dla systemu Linux.
Linia 248. $ python3 app podkreślnik glowna kropka py cezar LinuxToSystemOperacyjny 15.
Linia 249. Szyfrogram dwukropek AxcjmIdHnhitbDetgprnycn.
Linia 250. $ python3 app podkreślnik glowna kropka py plf LinuxToSystemOperacyjny OPENSOURCE.
Linia 251. Szyfrogram dwukropek otwórz nawias okrągły apostrof GTAOLZPONZSLNJENCBXAOMZY apostrof przecinek otwórz nawias kwadratowy apostrof O apostrof przecinek apostrof P apostrof przecinek apostrof E apostrof przecinek apostrof N apostrof przecinek apostrof S apostrof przecinek apostrof U apostrof przecinek apostrof R apostrof przecinek apostrof C apostrof przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof D apostrof przecinek apostrof F apostrof przecinek apostrof G apostrof przecinek apostrof H apostrof przecinek apostrof I apostrof przecinek apostrof J apostrof przecinek apostrof K apostrof przecinek apostrof L apostrof przecinek apostrof M apostrof przecinek apostrof T apostrof przecinek apostrof V apostrof przecinek apostrof W apostrof przecinek apostrof X apostrof przecinek apostrof Y apostrof przecinek apostrof Z apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 253. dla systemu Windows dwukropek.
Linia 255. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py cezar LinuxToSystemOperacyjny 15.
Linia 256. Szyfrogram dwukropek AxcjmIdHnhitbDetgprnycn.
Linia 257. zamknij nawias ostrokątny python kropka prawy ukośnik app podkreślnik glowna kropka py plf LinuxToSystemOperacyjny OPENSOURCE.
Linia 258. Szyfrogram dwukropek otwórz nawias okrągły apostrof GTAOLZPONZSLNJENCBXAOMZY apostrof przecinek otwórz nawias kwadratowy apostrof O apostrof przecinek apostrof P apostrof przecinek apostrof E apostrof przecinek apostrof N apostrof przecinek apostrof S apostrof przecinek apostrof U apostrof przecinek apostrof R apostrof przecinek apostrof C apostrof przecinek apostrof A apostrof przecinek apostrof B apostrof przecinek apostrof D apostrof przecinek apostrof F apostrof przecinek apostrof G apostrof przecinek apostrof H apostrof przecinek apostrof I apostrof przecinek apostrof J apostrof przecinek apostrof K apostrof przecinek apostrof L apostrof przecinek apostrof M apostrof przecinek apostrof T apostrof przecinek apostrof V apostrof przecinek apostrof W apostrof przecinek apostrof X apostrof przecinek apostrof Y apostrof przecinek apostrof Z apostrof zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 259. cudzysłów cudzysłów cudzysłów.
Linia 260. print otwórz nawias okrągły tekst zamknij nawias okrągły.
Linia 261. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 263. def zapis podkreślnik dziennika otwórz nawias okrągły logging dwukropek object przecinek info dwukropek str zamknij nawias okrągły dwukropek.
Linia 264. from datetime import datetime.
Linia 265. czas znak równości datetime kropka now otwórz nawias okrągły zamknij nawias okrągły.
Linia 266. log znak równości f cudzysłów otwórz nawias okrągły otwórz nawias klamrowy czas zamknij nawias klamrowy zamknij nawias okrągły minus otwórz nawias klamrowy info zamknij nawias klamrowy cudzysłów.
Linia 267. logging kropka info otwórz nawias okrągły log zamknij nawias okrągły.
Linia 269. kratka funkcja usuwa nieobsługiwane przez szyfr znaki otwórz nawias okrągły wszystko co nie jest literą alfabetu łacińskiego lub spacją zamknij nawias okrągły.
Linia 270. def usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły przygotowywany podkreślnik tekst dwukropek str zamknij nawias okrągły dwukropek.
Linia 271. tekst znak równości cudzysłów cudzysłów.
Linia 272. for litera in przygotowywany podkreślnik tekst dwukropek.
Linia 273. if otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły or otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły or ord otwórz nawias okrągły litera zamknij nawias okrągły znak równości znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły dwukropek.
Linia 274. tekst plus znak równości litera.
Linia 275. return tekst.
Linia 277. kratka funkcja usuwa nieobsługiwane przez szyfr znaki otwórz nawias okrągły wszystko co nie jest literą alfabetu łacińskiego lub spacją zamknij nawias okrągły.
Linia 278. def usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair otwórz nawias okrągły przygotowywany podkreślnik tekst dwukropek str zamknij nawias okrągły dwukropek.
Linia 279. tekst znak równości cudzysłów cudzysłów.
Linia 280. for litera in przygotowywany podkreślnik tekst dwukropek.
Linia 281. if otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły or otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły and otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły wykrzyknik znak równości ord otwórz nawias okrągły apostrof q apostrof zamknij nawias okrągły and ord otwórz nawias okrągły litera zamknij nawias okrągły wykrzyknik znak równości ord otwórz nawias okrągły apostrof Q apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 282. tekst plus znak równości litera.
Linia 283. return tekst.
Linia 289. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 290. kratka cezara kropka py.
Linia 291. import sys.
Linia 293. try dwukropek.
Linia 294. from app podkreślnik funkcje import usun podkreślnik nieobslugiwane podkreślnik znaki.
Linia 295. except dwukropek.
Linia 296. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 297. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 299. def cezar podkreślnik szyfruj otwórz nawias okrągły tekst dwukropek str przecinek klucz dwukropek int znak równości 3 zamknij nawias okrągły dwukropek.
Linia 300. cudzysłów cudzysłów cudzysłów domyślną wartością przesunięcia jest 3 cudzysłów cudzysłów cudzysłów.
Linia 301. tekst znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły tekst zamknij nawias okrągły.
Linia 302. szyfr znak równości cudzysłów cudzysłów.
Linia 303. for ch in tekst dwukropek.
Linia 304. nowy podkreślnik kod znak równości ord otwórz nawias okrągły cudzysłów tylda cudzysłów zamknij nawias okrągły.
Linia 305. if ord otwórz nawias okrągły ch zamknij nawias okrągły znak równości znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły dwukropek.
Linia 306. nowy podkreślnik kod znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły.
Linia 307. pass.
Linia 308. if ord otwórz nawias okrągły ch zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły ch zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły dwukropek.
Linia 309. nowy podkreślnik kod znak równości ord otwórz nawias okrągły ch zamknij nawias okrągły plus klucz procent 26.
Linia 310. if otwórz nawias okrągły nowy podkreślnik kod zamknij nawias ostrokątny ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 311. nowy podkreślnik kod minus znak równości 26.
Linia 312. if ord otwórz nawias okrągły ch zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły ch zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły dwukropek.
Linia 313. nowy podkreślnik kod znak równości ord otwórz nawias okrągły ch zamknij nawias okrągły plus klucz procent 26.
Linia 314. if otwórz nawias okrągły nowy podkreślnik kod zamknij nawias ostrokątny ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 315. nowy podkreślnik kod minus znak równości 26.
Linia 316. szyfr plus znak równości chr otwórz nawias okrągły nowy podkreślnik kod zamknij nawias okrągły.
Linia 317. return szyfr.
Linia 319. def cezar podkreślnik deszyfruj otwórz nawias okrągły tekst dwukropek str przecinek klucz dwukropek int znak równości 3 zamknij nawias okrągły dwukropek.
Linia 320. cudzysłów cudzysłów cudzysłów domyślną wartością przesunięcia jest 3 cudzysłów cudzysłów cudzysłów.
Linia 321. tekst znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły tekst zamknij nawias okrągły.
Linia 322. odszyfrowany znak równości cudzysłów cudzysłów.
Linia 323. for ch in tekst dwukropek.
Linia 324. nowy podkreślnik kod znak równości ord otwórz nawias okrągły cudzysłów tylda cudzysłów zamknij nawias okrągły.
Linia 325. if ord otwórz nawias okrągły ch zamknij nawias okrągły znak równości znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły dwukropek.
Linia 326. nowy podkreślnik kod znak równości ord otwórz nawias okrągły apostrof apostrof zamknij nawias okrągły.
Linia 327. pass.
Linia 328. if ord otwórz nawias okrągły ch zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły and ord otwórz nawias okrągły ch zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof z apostrof zamknij nawias okrągły dwukropek.
Linia 329. nowy podkreślnik kod znak równości ord otwórz nawias okrągły ch zamknij nawias okrągły minus klucz procent 26.
Linia 330. if otwórz nawias okrągły nowy podkreślnik kod otwórz nawias ostrokątny ord otwórz nawias okrągły apostrof a apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 331. nowy podkreślnik kod plus znak równości 26.
Linia 332. if ord otwórz nawias okrągły ch zamknij nawias okrągły zamknij nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły and ord otwórz nawias okrągły ch zamknij nawias okrągły otwórz nawias ostrokątny znak równości ord otwórz nawias okrągły apostrof Z apostrof zamknij nawias okrągły dwukropek.
Linia 333. nowy podkreślnik kod znak równości ord otwórz nawias okrągły ch zamknij nawias okrągły minus klucz procent 26.
Linia 334. if otwórz nawias okrągły nowy podkreślnik kod otwórz nawias ostrokątny ord otwórz nawias okrągły apostrof A apostrof zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 335. nowy podkreślnik kod plus znak równości 26.
Linia 336. odszyfrowany plus znak równości chr otwórz nawias okrągły nowy podkreślnik kod zamknij nawias okrągły.
Linia 337. return odszyfrowany.
Linia 339. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 340. print otwórz nawias okrągły cudzysłów Ten plik nie powinien być wykonywany samodzielnie kropka cudzysłów zamknij nawias okrągły.
Linia 343. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 344. kratka playfair kropka py.
Linia 345. import sys.
Linia 347. try dwukropek.
Linia 348. from app podkreślnik funkcje import usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair.
Linia 349. except dwukropek.
Linia 350. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 351. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 353. def plf podkreślnik sekretna podkreślnik tablica otwórz nawias okrągły klucz dwukropek str zamknij nawias okrągły dwukropek.
Linia 354. kratka dla tablicy 5 x 5 używamy alfabetu bez zanku cudzysłów Q cudzysłów.
Linia 355. alfabet znak równości cudzysłów ABCDEFGHIJKLMNOPRSTUVWXYZ cudzysłów.
Linia 356. tablica znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 358. kratka kopiujemy znaki przecinek ignorujemy duplikaty.
Linia 359. for znak in klucz kropka upper otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 360. if znak not in tablica and znak in alfabet dwukropek.
Linia 361. tablica kropka append otwórz nawias okrągły znak zamknij nawias okrągły.
Linia 363. kratka wypełniamy pozostałe znaki w tablicy.
Linia 364. for znak in alfabet dwukropek.
Linia 365. if znak not in tablica dwukropek.
Linia 366. tablica kropka append otwórz nawias okrągły znak zamknij nawias okrągły.
Linia 367. return tablica.
Linia 369. def plf podkreślnik zwroc podkreślnik pary otwórz nawias okrągły tekst podkreślnik jawny dwukropek str zamknij nawias okrągły dwukropek.
Linia 370. kratka sprawdzamy długość tekstu.
Linia 371. if len otwórz nawias okrągły tekst podkreślnik jawny zamknij nawias okrągły procent 2 znak równości znak równości 1 dwukropek.
Linia 372. tekst podkreślnik jawny plus znak równości cudzysłów x cudzysłów.
Linia 373. tekst podkreślnik jawny znak równości tekst podkreślnik jawny kropka upper otwórz nawias okrągły zamknij nawias okrągły.
Linia 375. for i in range otwórz nawias okrągły 0 przecinek len otwórz nawias okrągły tekst podkreślnik jawny zamknij nawias okrągły przecinek 2 zamknij nawias okrągły dwukropek.
Linia 376. kratka zwracamy za pomocą yield kolejne pary znaków.
Linia 377. yield tekst podkreślnik jawny otwórz nawias kwadratowy i dwukropek i plus 2 zamknij nawias kwadratowy.
Linia 379. def plf podkreślnik znajdz podkreślnik szyfr podkreślnik pary otwórz nawias okrągły tablica dwukropek list przecinek para podkreślnik znakow dwukropek tuple zamknij nawias okrągły dwukropek.
Linia 380. znak podkreślnik 1 przecinek znak podkreślnik 2 znak równości para podkreślnik znakow.
Linia 381. wiersz podkreślnik 1 przecinek kolumna podkreślnik 1 znak równości divmod otwórz nawias okrągły tablica kropka index otwórz nawias okrągły znak podkreślnik 1 zamknij nawias okrągły przecinek 5 zamknij nawias okrągły.
Linia 382. wiersz podkreślnik 2 przecinek kolumna podkreślnik 2 znak równości divmod otwórz nawias okrągły tablica kropka index otwórz nawias okrągły znak podkreślnik 2 zamknij nawias okrągły przecinek 5 zamknij nawias okrągły.
Linia 384. if wiersz podkreślnik 1 znak równości znak równości wiersz podkreślnik 2 dwukropek.
Linia 385. tekst znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 1 asterysk 5 plus otwórz nawias okrągły kolumna podkreślnik 1 plus 1 zamknij nawias okrągły procent 5 zamknij nawias kwadratowy.
Linia 386. tekst plus znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 2 asterysk 5 plus otwórz nawias okrągły kolumna podkreślnik 2 plus 1 zamknij nawias okrągły procent 5 zamknij nawias kwadratowy.
Linia 387. elif kolumna podkreślnik 1 znak równości znak równości kolumna podkreślnik 2 dwukropek.
Linia 388. tekst znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły wiersz podkreślnik 1 plus 1 zamknij nawias okrągły procent 5 zamknij nawias okrągły asterysk 5 plus kolumna podkreślnik 1 zamknij nawias kwadratowy.
Linia 389. tekst plus znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły wiersz podkreślnik 2 plus 1 zamknij nawias okrągły procent 5 zamknij nawias okrągły asterysk 5 plus kolumna podkreślnik 2 zamknij nawias kwadratowy.
Linia 390. else dwukropek.
Linia 391. tekst znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 1 asterysk 5 plus kolumna podkreślnik 2 zamknij nawias kwadratowy.
Linia 392. tekst plus znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 2 asterysk 5 plus kolumna podkreślnik 1 zamknij nawias kwadratowy.
Linia 393. return tekst.
Linia 395. def plf podkreślnik odszyfruj podkreślnik pare otwórz nawias okrągły tablica dwukropek list przecinek para podkreślnik znakow dwukropek tuple zamknij nawias okrągły dwukropek.
Linia 396. znak podkreślnik 1 przecinek znak podkreślnik 2 znak równości para podkreślnik znakow.
Linia 397. wiersz podkreślnik 1 przecinek kolumna podkreślnik 1 znak równości divmod otwórz nawias okrągły tablica kropka index otwórz nawias okrągły znak podkreślnik 1 zamknij nawias okrągły przecinek 5 zamknij nawias okrągły.
Linia 398. wiersz podkreślnik 2 przecinek kolumna podkreślnik 2 znak równości divmod otwórz nawias okrągły tablica kropka index otwórz nawias okrągły znak podkreślnik 2 zamknij nawias okrągły przecinek 5 zamknij nawias okrągły.
Linia 400. if wiersz podkreślnik 1 znak równości znak równości wiersz podkreślnik 2 dwukropek.
Linia 401. tekst znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 1 asterysk 5 plus otwórz nawias okrągły kolumna podkreślnik 1 minus 1 zamknij nawias okrągły procent 5 zamknij nawias kwadratowy.
Linia 402. tekst plus znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 2 asterysk 5 plus otwórz nawias okrągły kolumna podkreślnik 2 minus 1 zamknij nawias okrągły procent 5 zamknij nawias kwadratowy.
Linia 403. elif kolumna podkreślnik 1 znak równości znak równości kolumna podkreślnik 2 dwukropek.
Linia 404. tekst znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły wiersz podkreślnik 1 minus 1 zamknij nawias okrągły procent 5 zamknij nawias okrągły asterysk 5 plus kolumna podkreślnik 1 zamknij nawias kwadratowy.
Linia 405. tekst plus znak równości tablica otwórz nawias kwadratowy otwórz nawias okrągły otwórz nawias okrągły wiersz podkreślnik 2 minus 1 zamknij nawias okrągły procent 5 zamknij nawias okrągły asterysk 5 plus kolumna podkreślnik 2 zamknij nawias kwadratowy.
Linia 406. else dwukropek.
Linia 407. tekst znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 1 asterysk 5 plus kolumna podkreślnik 2 zamknij nawias kwadratowy.
Linia 408. tekst plus znak równości tablica otwórz nawias kwadratowy wiersz podkreślnik 2 asterysk 5 plus kolumna podkreślnik 1 zamknij nawias kwadratowy.
Linia 409. return tekst.
Linia 412. def plf podkreślnik szyfruj otwórz nawias okrągły tekst podkreślnik jawny dwukropek str przecinek klucz dwukropek str zamknij nawias okrągły dwukropek.
Linia 413. tekst podkreślnik jawny znak równości usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair otwórz nawias okrągły tekst podkreślnik jawny zamknij nawias okrągły.
Linia 414. kratka klucz znak równości usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair otwórz nawias okrągły klucz zamknij nawias okrągły.
Linia 415. kratka tworzymy tablicę szyfrowania.
Linia 416. tablica znak równości plf podkreślnik sekretna podkreślnik tablica otwórz nawias okrągły klucz zamknij nawias okrągły.
Linia 417. kratka przetwarzamy tekst jawny na szyfrogram.
Linia 418. szyfrogram znak równości cudzysłów cudzysłów.
Linia 419. for para in plf podkreślnik zwroc podkreślnik pary otwórz nawias okrągły tekst podkreślnik jawny zamknij nawias okrągły dwukropek.
Linia 420. szyfrogram plus znak równości plf podkreślnik znajdz podkreślnik szyfr podkreślnik pary otwórz nawias okrągły tablica przecinek para zamknij nawias okrągły.
Linia 421. kratka zwracamy szyfr oraz tablicę.
Linia 422. return otwórz nawias okrągły szyfrogram przecinek tablica zamknij nawias okrągły.
Linia 424. def plf podkreślnik odszyfruj otwórz nawias okrągły szyfr dwukropek tuple zamknij nawias okrągły dwukropek.
Linia 425. tekst podkreślnik jawny znak równości cudzysłów cudzysłów.
Linia 426. szyfrogram znak równości szyfr otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 427. tablica znak równości plf podkreślnik sekretna podkreślnik tablica otwórz nawias okrągły szyfr otwórz nawias kwadratowy 1 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 428. szyfrogram znak równości usun podkreślnik nieobslugiwane podkreślnik znaki podkreślnik playfair otwórz nawias okrągły szyfrogram zamknij nawias okrągły.
Linia 429. for para in plf podkreślnik zwroc podkreślnik pary otwórz nawias okrągły szyfrogram zamknij nawias okrągły dwukropek.
Linia 430. tekst podkreślnik jawny plus znak równości plf podkreślnik odszyfruj podkreślnik pare otwórz nawias okrągły tablica przecinek para zamknij nawias okrągły.
Linia 431. return tekst podkreślnik jawny.
Linia 433. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 434. print otwórz nawias okrągły cudzysłów Ten plik nie powinien być wykonywany samodzielnie kropka cudzysłów zamknij nawias okrągły.
Linia 439. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 440. kratka plotkowy kropka py.
Linia 441. import sys.
Linia 443. try dwukropek.
Linia 444. from app podkreślnik funkcje import usun podkreślnik nieobslugiwane podkreślnik znaki.
Linia 445. except dwukropek.
Linia 446. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 447. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 449. def plot podkreślnik szyfruj otwórz nawias okrągły slowo dwukropek str przecinek klucz dwukropek int znak równości 3 zamknij nawias okrągły dwukropek.
Linia 450. cudzysłów cudzysłów cudzysłów Funkcja przyjmuje słowo i zwraca je zaszyfrowanie według klucza przecinek domyślnie wartości 3 cudzysłów cudzysłów cudzysłów.
Linia 451. slowo znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły slowo zamknij nawias okrągły.
Linia 452. dl podkreślnik slowa znak równości len otwórz nawias okrągły slowo zamknij nawias okrągły.
Linia 453. lista podkreślnik znakow znak równości otwórz nawias kwadratowy otwórz nawias kwadratowy cudzysłów tylda cudzysłów for i in range otwórz nawias okrągły klucz zamknij nawias okrągły zamknij nawias kwadratowy for j in range otwórz nawias okrągły dl podkreślnik slowa zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 454. kolumny znak równości otwórz nawias kwadratowy i for i in range otwórz nawias okrągły klucz zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 455. szyfr znak równości cudzysłów cudzysłów.
Linia 457. kratka aby uzyskać cudzysłów płotek cudzysłów przecinek dodajemy kolumny odliczane do 1.
Linia 458. for i in range otwórz nawias okrągły klucz minus 2 przecinek 0 przecinek minus 1 zamknij nawias okrągły dwukropek.
Linia 459. kolumny kropka append otwórz nawias okrągły i zamknij nawias okrągły.
Linia 461. wiersz znak równości 0.
Linia 462. while slowo dwukropek.
Linia 463. for i in kolumny dwukropek.
Linia 464. if slowo dwukropek.
Linia 465. kratka przepisujemy pierwszy znak z jawnego tekstu.
Linia 466. lista podkreślnik znakow otwórz nawias kwadratowy wiersz zamknij nawias kwadratowy otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości slowo otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 467. kratka przepisujemy wszystkie elementy bez pierwszego znaku do slowo.
Linia 468. slowo znak równości slowo otwórz nawias kwadratowy 1 dwukropek zamknij nawias kwadratowy.
Linia 469. wiersz plus znak równości 1.
Linia 471. kratka łączymy znaki przecinek jeśli są różne od cudzysłów tylda cudzysłów.
Linia 472. for i in range otwórz nawias okrągły klucz zamknij nawias okrągły dwukropek.
Linia 473. for j in range otwórz nawias okrągły len otwórz nawias okrągły lista podkreślnik znakow zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 474. if lista podkreślnik znakow otwórz nawias kwadratowy j zamknij nawias kwadratowy otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów tylda cudzysłów dwukropek.
Linia 475. szyfr plus znak równości lista podkreślnik znakow otwórz nawias kwadratowy j zamknij nawias kwadratowy otwórz nawias kwadratowy i zamknij nawias kwadratowy.
Linia 476. return szyfr.
Linia 478. def plot podkreślnik odszyfruj otwórz nawias okrągły szyfr dwukropek str przecinek klucz dwukropek int znak równości 3 zamknij nawias okrągły dwukropek.
Linia 479. szyfr znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły szyfr zamknij nawias okrągły.
Linia 480. cudzysłów cudzysłów cudzysłów Odszyfrowywuje słowo przecinek klucz domyślnie ma wartość 3 cudzysłów cudzysłów cudzysłów.
Linia 481. kopia znak równości szyfr otwórz nawias kwadratowy dwukropek zamknij nawias kwadratowy kratka Użyjemy kopii do wypełnienia listy.
Linia 482. dl podkreślnik szyfru znak równości len otwórz nawias okrągły szyfr zamknij nawias okrągły kratka Kopia długości szyfru.
Linia 483. odszyfrowane znak równości cudzysłów cudzysłów kratka Odszyfrowane słowo.
Linia 484. szyfrowane podkreślnik znaki znak równości otwórz nawias kwadratowy otwórz nawias kwadratowy cudzysłów tylda cudzysłów for i in range otwórz nawias okrągły dl podkreślnik szyfru zamknij nawias okrągły zamknij nawias kwadratowy for j in range otwórz nawias okrągły klucz zamknij nawias okrągły zamknij nawias kwadratowy kratka Lista na słowo.
Linia 486. kratka Wypełniamy listę asterysk w miejscach liter.
Linia 487. kolumna znak równości 0.
Linia 488. wiersz znak równości otwórz nawias kwadratowy i for i in range otwórz nawias okrągły klucz zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 489. for i in range otwórz nawias okrągły klucz minus 2 przecinek 0 przecinek minus 1 zamknij nawias okrągły dwukropek.
Linia 490. wiersz kropka append otwórz nawias okrągły i zamknij nawias okrągły.
Linia 492. while kopia dwukropek.
Linia 493. for i in wiersz dwukropek.
Linia 494. if kolumna otwórz nawias ostrokątny dl podkreślnik szyfru dwukropek.
Linia 495. szyfrowane podkreślnik znaki otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy kolumna zamknij nawias kwadratowy znak równości cudzysłów asterysk cudzysłów.
Linia 496. kolumna plus znak równości 1.
Linia 497. kopia znak równości kopia otwórz nawias kwadratowy 1 dwukropek zamknij nawias kwadratowy.
Linia 499. kratka Uzupełnij listę literami.
Linia 500. for i in range otwórz nawias okrągły klucz zamknij nawias okrągły dwukropek.
Linia 501. for j in range otwórz nawias okrągły dl podkreślnik szyfru zamknij nawias okrągły dwukropek.
Linia 502. if szyfrowane podkreślnik znaki otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości znak równości cudzysłów asterysk cudzysłów dwukropek.
Linia 503. szyfrowane podkreślnik znaki otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy j zamknij nawias kwadratowy znak równości szyfr otwórz nawias kwadratowy 0 zamknij nawias kwadratowy.
Linia 504. szyfr znak równości szyfr otwórz nawias kwadratowy 1 dwukropek zamknij nawias kwadratowy.
Linia 506. kratka Uzupełniaj słowo idąc po kolumnach.
Linia 507. for i in range otwórz nawias okrągły dl podkreślnik szyfru zamknij nawias okrągły dwukropek.
Linia 508. for j in range otwórz nawias okrągły klucz zamknij nawias okrągły dwukropek.
Linia 509. if szyfrowane podkreślnik znaki otwórz nawias kwadratowy j zamknij nawias kwadratowy otwórz nawias kwadratowy i zamknij nawias kwadratowy wykrzyknik znak równości cudzysłów tylda cudzysłów dwukropek.
Linia 510. odszyfrowane plus znak równości szyfrowane podkreślnik znaki otwórz nawias kwadratowy j zamknij nawias kwadratowy otwórz nawias kwadratowy i zamknij nawias kwadratowy.
Linia 511. return odszyfrowane.
Linia 513. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 514. print otwórz nawias okrągły cudzysłów Ten plik nie powinien być wykonywany samodzielnie kropka cudzysłów zamknij nawias okrągły.
Linia 516. kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka kratka.
Linia 517. kratka vigenere kropka py.
Linia 518. import sys.
Linia 520. try dwukropek.
Linia 521. from app podkreślnik funkcje import usun podkreślnik nieobslugiwane podkreślnik znaki.
Linia 522. except dwukropek.
Linia 523. print otwórz nawias okrągły cudzysłów Problem przy imporcie modułów dodatkowych minus sprawdź ich istnienie kropka cudzysłów zamknij nawias okrągły.
Linia 524. sys kropka exit otwórz nawias okrągły 0 zamknij nawias okrągły.
Linia 526. def vig podkreślnik tworzenie podkreślnik klucza otwórz nawias okrągły tekst podkreślnik jawny dwukropek str przecinek slowo podkreślnik klucz dwukropek str zamknij nawias okrągły dwukropek.
Linia 527. from itertools import cycle.
Linia 528. klucz znak równości cudzysłów cudzysłów.
Linia 529. pary znak równości zip otwórz nawias okrągły tekst podkreślnik jawny przecinek cycle otwórz nawias okrągły slowo podkreślnik klucz zamknij nawias okrągły zamknij nawias okrągły.
Linia 530. for para in pary dwukropek.
Linia 531. klucz plus znak równości para otwórz nawias kwadratowy 1 zamknij nawias kwadratowy kropka upper otwórz nawias okrągły zamknij nawias okrągły.
Linia 532. return klucz.
Linia 534. def vig podkreślnik szyfruj otwórz nawias okrągły napis dwukropek str przecinek slowo podkreślnik klucz dwukropek str zamknij nawias okrągły dwukropek.
Linia 535. napis znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły napis zamknij nawias okrągły.
Linia 536. slowo podkreślnik klucz znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły slowo podkreślnik klucz zamknij nawias okrągły.
Linia 537. klucz znak równości vig podkreślnik tworzenie podkreślnik klucza otwórz nawias okrągły napis przecinek slowo podkreślnik klucz zamknij nawias okrągły.
Linia 538. szyfrogram znak równości cudzysłów cudzysłów.
Linia 539. for poz przecinek litera in enumerate otwórz nawias okrągły napis kropka upper otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 540. if not litera znak równości znak równości cudzysłów cudzysłów dwukropek.
Linia 541. x znak równości 65 plus otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły plus ord otwórz nawias okrągły klucz otwórz nawias kwadratowy poz zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły procent 26 zamknij nawias okrągły.
Linia 542. szyfrogram plus znak równości chr otwórz nawias okrągły x zamknij nawias okrągły.
Linia 543. else dwukropek.
Linia 544. szyfrogram plus znak równości litera.
Linia 545. return szyfrogram.
Linia 547. def vig podkreślnik odszyfruj otwórz nawias okrągły szyfr dwukropek str przecinek klucz dwukropek str zamknij nawias okrągły dwukropek.
Linia 548. szyfr znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły szyfr zamknij nawias okrągły.
Linia 549. klucz znak równości usun podkreślnik nieobslugiwane podkreślnik znaki otwórz nawias okrągły klucz zamknij nawias okrągły.
Linia 550. klucz znak równości vig podkreślnik tworzenie podkreślnik klucza otwórz nawias okrągły szyfr przecinek klucz zamknij nawias okrągły.
Linia 551. tekst podkreślnik jawny znak równości cudzysłów cudzysłów.
Linia 552. for poz przecinek litera in enumerate otwórz nawias okrągły szyfr kropka upper otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły dwukropek.
Linia 553. if not litera znak równości znak równości cudzysłów cudzysłów dwukropek.
Linia 554. x znak równości 65 plus otwórz nawias okrągły otwórz nawias okrągły ord otwórz nawias okrągły litera zamknij nawias okrągły minus ord otwórz nawias okrągły klucz otwórz nawias kwadratowy poz zamknij nawias kwadratowy zamknij nawias okrągły zamknij nawias okrągły procent 26 zamknij nawias okrągły.
Linia 555. tekst podkreślnik jawny plus znak równości chr otwórz nawias okrągły x zamknij nawias okrągły.
Linia 556. else dwukropek.
Linia 557. tekst podkreślnik jawny plus znak równości litera.
Linia 558. return tekst podkreślnik jawny.
Linia 560. if podkreślnik podkreślnik name podkreślnik podkreślnik znak równości znak równości cudzysłów podkreślnik podkreślnik main podkreślnik podkreślnik cudzysłów dwukropek.
Linia 561. print otwórz nawias okrągły cudzysłów Ten plik nie powinien być wykonywany samodzielnie kropka cudzysłów zamknij nawias okrągły.
Słownik
cryptography
cryptography
biblioteka, której twórcy mają na celu stworzenie standardowej biblioteki kryptograficznej, niezależnej od systemu operacyjnego; nie jest dostępna w standardowej instalacji języka Python – należy ją zainstalować, korzystając z mechanizmu pip
dunder
dunder
(ang. double under) funkcja, metoda, właściwość lub zmienna specjalnego przeznaczenia w języku Python, pozwalająca nadpisać funkcjonalności wbudowane we własnoręcznie pisanych klasach lub przechowywać metadane; zapisuje się ją za pomocą podwójnego podkreślnika umieszczonego przed i po nazwie
graficzny interfejs użytkownika
graficzny interfejs użytkownika
(w skrócie GUI) sposób komunikacji programu z użytkownikiem za pomocą elementów graficznych; określane tak są również efekty działania programów, prezentowane w postaci graficznej lub jako okienka; interfejs taki obsługiwany jest głównie za pomocą myszy przez klikanie w odpowiednie przyciski; jego przeciwieństwem jest tryb tekstowy
przestrzeń nazw
przestrzeń nazw
(ang. namespace) miejsce w pamięci operacyjnej, gdzie przechowywana jest dana zmienna; najczęściej przestrzeń nazw związana jest z funkcją, a używane w niej zmienne są widoczne tylko w obrębie tej przestrzeni – jest to „zakres obowiązywania” tych zmiennych
PySimpleGUI
PySimpleGUI
biblioteka do wyświetlania prostych okien dialogowych, niezależna od systemu operacyjnego; nie jest dostępna w standardowej instalacji języka Python – należy ją zainstalować, korzystając z mechanizmu pip
szyfrogram
szyfrogram
zaszyfrowany tekst
tryb nieinteraktywny
tryb nieinteraktywny
sposób uruchamiania aplikacji z linii poleceń lub ze skryptów (np. BAT, PS, SH)