java baner reaktor

Przejdź do działania i naucz się Javy na kursie! Podpowiedzi do nauki Java znajdziesz też w książce “Java. To takie proste”.

Malvi 26 kwietnia 2018, 13:47
Odszyfrowywanie sekretnych wiadomości
Większość z nas przesyłała kiedyś zaszyfrowane notatki do przyjaciół, aby ukryć pewne informacje przed rodzicami lub nauczycielami. W tym rozdziale zajmiemy się czymś podobnym, tworząc aplikację Secret Messages.
Kod Cezara
Nasza aplikacja będzie szyfrowała i deszyfrowała sekretne wiadomości przy użyciu kodu Cezara, opracowanego ponad 2000 lat temu algorytmu, który wykorzystuje podstawianie liter do szyfrowania wiadomości.
Nazwa szyfru pochodzi od rzymskiego imperatora Juliusza Cezara (100–44 p.n.e.). Według historyków Juliusz Cezar lubił szyfrować prywatne wiadomości, m.in. notatki przesyłane do generałów wojskowych, „przesuwając” litery alfabetu. Przedstawiona na rysunku 6.1 przykładowa tarcza przesuwa alfabet o 13 liter.
Litery na zewnętrznym pierścieniu tej tarczy są dopasowane do liter na wewnętrznym pierścieniu, którymi powinny zostać zastąpione, czyli A staje się N, B staje się O itd. Ten szyfr posłużył do uzyskania następującego efektu:
Sekretne komunikaty to super sprawa!
Frxergar xbzhavxngl gb fhcre fcejn!

kod cezara reaktor

W pierwszym wierszu znajduje się zwykły tekst, czyli pierwotna, czytelna wersja wiadomości. Drugi wiersz to zaszyfrowany tekst, czyli zaszyfrowana wersja tej samej wiadomości.
Spróbujmy odkodować tę wiadomość do pierwotnego tekstu jawnego, odwracając zastąpienia, czyli znajdując wewnętrzną literę i zastępując ją odpowiednią zewnętrzną literą.
Nie wszystkie kody Cezara są symetryczne, jak ten przedstawiony w tym przykładzie. Symetryczny oznacza, że ten sam proces może zostać wykorzystany do zaszyfrowania jak i odszyfrowania wiadomości. Na przykład F staje się S podczas szyfrowania przez przesunięcie o plus 13, natomiast S staje się F w trakcie odszyfrowywania przez przesunięcie o minus 13. W efekcie w obu procesach możemy posłużyć się tą samą tarczą i kluczem, czyli liczbą użytą do przesunięcia liter. Liczba, o jaką zostaną przesunięte litery (w tym przypadku 13) jest nazywana kluczem, ponieważ jej znajomość stanowi klucz do odszyfrowania wiadomości. Aplikacja Secret Messages (Sekretne wiadomości), którą zbudujemy w tym rozdziale, umożliwi nam użycie dowolnej wartości klucza.
Przygotowywanie aplikacji Secret Messages
Aplikację Secret Messages zbudujemy w podobny sposób jak zgadywankę Hi-Lo: na początku utworzymy wersję wiersza poleceń, następnie interfejs GUI dla wersji komputerowej, a na zakończenie mobilną aplikację Android.
Wersja wiersza poleceń będzie wyglądała dość prosto, jak widać na rysunku 6.2, ale umożliwi nam szybkie i łatwe testowanie algorytmu szyfrowania wiadomości.
kod cezara reaktor
Jak widać na rysunku 6.2, program prosi użytkownika o wpisanie wiadomości do zaszyfrowania lub odszyfrowania (Enter a message to encode or decode), a po niej wartości sekretnego klucza (Enter a secret key). Następnie program odpowiada, drukując zaszyfrowaną wiadomość. Pisanie aplikacji rozpoczniemy od szyfrowania całej wiadomości, łącznie ze spacjami i znakami interpunkcyjnymi. W końcowej wersji dodamy kod, który umożliwi szyfrowanie tylko liter, jak pokazano na rysunku 6.2.
Tworzenie projektu Secret Messages w programie Eclipse
Zacznijmy od otworzenia programu Eclipse. Jeśli pliki z poprzednich projektów są nadal otwarte, należy je teraz zamknąć. Aby utworzyć nowy projekt Java, wybieramy opcje File-New-Java Project i nadajemy projektowi nazwę SecretMessages. Klikamy przycisk Finish.
W panelu Package Explorer rozwijamy folder projektu SecretMessages, aby odsłonić folder src. Prawym przyciskiem myszy klikamy folder src i wybieramy opcje New-Class, aby utworzyć nowy plik kodu źródłowego Java, któremu również nadamy nazwę SecretMessages. Zaznaczamy pole wyboru służące do utworzenia szkieletu metody main(), jak pokazano na rysunku 6.3.
eclipse reaktor

Ciekawi Was co dalej? Przeczytajcie książkę i koniecznie zapiszcie się na kurs Reaktor, na którym nauczycie się takich aplikacji!

KURSY: reaktor@pwn.pl 

książka: http://bit.ly/2Ie2O7R

Jesteś gotowy na rozwój swojej kariery?

Chcesz zostać programistą? Wybierz odpowiedni kurs i zapisz się już dziś

POZNAJ OFERTĘ KURSÓW

Patroni medialni