Laboratorium 1
Zadania do wykonania
JAVA:
-
Zaimplementuj mechanizm serializacji i deserializacji w języku Java dla złożonej struktury obiektów, która zawiera dane wrażliwe, np. numery PESEL lub hasła. Zastosuj: serializację danych, z możliwością pominięcia wrażliwych pól; niestandardowe szyfrowanie wrażliwych danych (np. AES) podczas serializacji; odszyfrowanie danych w trakcie deserializacji.
-
Napisz program w Javie, który czyta dane z dużego pliku binarnego (ponad 1 GB) i zapisuje jego przetworzoną wersję do innego pliku, używając strumieni bajtów. Upewnij się, że operacja odczytu i zapisu jest zoptymalizowana przy użyciu buforowania, aby minimalizować zużycie zasobów systemowych.
-
Zaimplementuj w Javie aplikację, która odczytuje strumienie danych z pliku tekstowego i zapisuje je do innego pliku, przy użyciu strumieni znaków. Uwzględnij poprawne zamykanie strumieni przy użyciu konstrukcji try-with-resources.
-
Napisz w Javie prosty program, który utworzy plik tekstowy i zapisze w nim dane tekstowe przy użyciu klasy FileWriter.
-
Zaimplementuj mechanizm serializacji i deserializacji w języku Java dla złożonej struktury obiektów, które zawierają dane wrażliwe, takie jak numery PESEL, hasła oraz informacje o kartach kredytowych. Zadanie wymaga: serializacji danych z wykluczeniem danych wrażliwych (PESEL, hasła) przy użyciu adnotacji transient; zastosowania niestandardowego szyfrowania AES dla numerów kart kredytowych podczas serializacji; odszyfrowania numerów kart kredytowych podczas deserializacji z walidacją ich poprawności.
-
Napisz program w Javie, który przetworzy i zaszyfruje dane z dużego pliku binarnego (ponad 2 GB) za pomocą algorytmu AES i zapisze zaszyfrowaną wersję do nowego pliku. Zaimplementuj buforowanie, aby zoptymalizować proces szyfrowania i zapisu oraz zminimalizować użycie pamięci.
-
Zaimplementuj w Javie aplikację, która odczytuje strumienie danych z pliku CSV, przetwarza je (np. konwertuje do obiektu Person) i zapisuje przetworzone dane do innego pliku CSV, przy użyciu strumieni znaków. Upewnij się, że program poprawnie obsługuje błędy, np. braki danych, oraz zastosuj konstrukcję try-with-resources.
-
Napisz w Javie prosty program, który utworzy plik tekstowy, zapisze w nim bieżącą datę oraz godzinę, a następnie odczyta ten plik i wyświetli jego zawartość w konsoli. Upewnij się, że program obsługuje wszelkie potencjalne wyjątki, takie jak brak uprawnień do zapisu.
PYTHON:
-
Zaimplementuj mechanizm serializacji i deserializacji w języku Python dla złożonych struktur danych zawierających dane wrażliwe, takie jak numery kart kredytowych lub hasła. Wymagania: serializacja danych z pominięciem wrażliwych pól przy użyciu pickle z wykluczeniem wybranych atrybutów; zastosowanie szyfrowania AES wrażliwych danych (np. numerów kart kredytowych) podczas serializacji; deserializacja z odszyfrowaniem tych danych i walidacją ich poprawności.
-
Napisz program w Pythonie, który przetworzy dane z dużego pliku binarnego (ponad 1 GB), zaszyfruje je przy użyciu AES i zapisze zaszyfrowane dane do innego pliku binarnego. Zaimplementuj buforowanie w celu optymalizacji procesu odczytu, szyfrowania i zapisu.
-
Zaimplementuj w Pythonie aplikację, która odczyta plik CSV, przetworzy dane na obiekty (np. Person), a następnie zapisze te dane do nowego pliku CSV. Program powinien obsługiwać błędy związane z formatem danych i brakiem wymaganych pól w pliku wejściowym. Skorzystaj z modułu csv i konstrukcji with do zarządzania plikami.
-
Napisz w Pythonie prosty program, który utworzy plik tekstowy, zapisze w nim aktualną datę i godzinę, a następnie odczyta i wyświetli zawartość tego pliku w konsoli. Program powinien obsługiwać wyjątki związane z dostępem do plików (np. brak uprawnień).