Manager Haseł
200 PLNNie powinniśmy stosować tego samego hasła do różnych portali. Wyciek jednego z nich naraża nas na utratę danych w wielu miejscach. W związku z tym, aby zminimalizować to niebezpieczeństwo, powinniśmy stosować uwierzytelnianie dwuetapowe (ang. two-phase authentication) - 2FA (które nie jest częścią tego projektu) oraz różne hasła. W tym drugim mogą nam pomóc programy typu Password Manager, takie jak bitwarden czy KeePass.
Projekt polega na stworzeniu aplikacji konsolowej służącej do modyfikowania i czytania z pliku, w którym będą przechowywane nasze hasła wraz z dodatkowymi informacjami dotyczącymi różnych portali, których te hasła dotyczą. Będą one zaszyfrowane pojedynczym hasłem głównym. Aplikacja powinna być uruchamiana z poziomu linii poleceń (ang. command line). Bazując na komendach czytanych z klawiatury wykonywać odpowiednie funkcje i zwracać interesujące nas informacje - na zasadzie interfejsu linii poleceń (ang. command-line interface) - CLI.
Wymagania funkcjonalne
Po uruchomieniu programu użytkownik powinien mieć możliwość wybrania jednego z plików znajdujących się w folderze programu lub podania bezpośredniej, absolutnej ścieżki do pliku. Wybrany plik będziemy nazywać plikiem źródłowym.
Dane w pliku źródłowym są zaszyfrowane. Sposób szyfrowania musi być autorski i w pełni zrozumiany. Hasło pliku źródłowego ma stanowić nieodzowną cześć procesu szyfrowania i odszyfrowania. Trudność złamania takiego szyfru nie będzie oceniana, ale otwarcie pliku w edytorze tekstu i proste metody dedukcyjne nie powinny być wystarczające do odszyfrowania jego zawartości. To samo się tyczy modyfikacji jego zawartości.
Każda próba odszyfrowania pliku powinna zapisać timestamp takiej operacji. Z uwagi na to, że sam plik i program nie przechowuje nigdzie informacji o poprawnym haśle, a timestamp modyfikacji musi być zawsze zmieniany (zarówno podczas nieudanej próby otwarcia i modyfikacji pliku (podanie innego hasła niż to, którym plik źródłowy jest zaszyfrowany)), to będzie on jedyną informacją zapisaną jawnie w całym pliku (bez szyfrowania). W związku z tym musimy znaleźć inny sposób na jego ukrycie.
Jedną z możliwości byłoby rozłożyć tę informację na różne linijki. Początkiem linii 11. mogłoby być hhDDDD, linii 22. mmDDDD, a 33. ssDDDD, gdzie hh to godzina mm to minuta a ss to sekunda ostatniej próby odszyfrowania. DDDD to dalsze zaszyfrowane dane, niemające nic wspólnego z samym timestampem. Każde hasło musi zawierać co najmniej:
- Nazwę (Nazwa własna tego wpisu np. “Hasło do Konta1 na Google”);
- Tekst reprezentujący samo hasło;
- Kategorię.
Każde hasło dodatkowo może zawierać:
- Strona WWW / Serwis;
- Login.
Implementacja wszystkich tych elementów jest wymagana, choć nie każde hasło musi zawierać te ostatnie dwie składowe. Mają one być opcjonalne.
Opis komend
- Wyszukaj hasła – zwraca hasła, które zawierają konkretne parametry.
- Posortuj hasła – zwraca posortowaną listę wszystkich haseł. Ma umożliwiać posortowanie po co najmniej 2 różnych parametrach w tym samym czasie, czyli na przykład po nazwie i kategorii.
- Dodaj hasło – dodaje nowe hasło do zaszyfrowanego pliku. Użytkownikowi powinna być umożliwiona opcja wpisania własnego hasła i poinformowania go, na ile jest to bezpieczne hasło i czy nie zostało już wcześniej wykorzystane. Dodatkowo należy zaproponować mu hasło automatycznie wygenerowane dając mu jednocześnie możliwość wybrania pewnych parametrów, takich jak:
- Ilość znaków;
- Czy ma zawierać wielkie i małe litery;
- Czy ma zawierać znaki specjalne.
- Edytuj hasło – pozwala na edycje danych w istniejącym już haśle.
- Usuń hasło – usuwa wybrane hasło lub hasła. Przed każdym usunięciem powinniśmy powiadomić o tym użytkownika szczególnie jeżeli usuwane jest więcej niż jedno hasło.
- Dodaj kategorie – dodaje nową kategorię, którą będziemy mogli wykorzystywać przy tworzeniu nowych haseł.
- Usuń kategorie – usuwa kategorie wraz ze wszystkimi hasłami, które do tej kategorii są przypisane.
Edycja hasła nie może się odbywać za pomocą usuwania oryginalnego rekordu i zastępowania go nowym.
-
60 dni7000 PLN
104 60 dni7000 PLNPozdrawiam ! Przygotowaliśmy się do dyskusji na temat projektu i rozpoczęcia jego rozwoju. Istnieje kilka pytań na temat samego projektu, możemy omówić szczegółowo.
Istnieje duże i zróżnicowane doświadczenie handlowe w opracowywaniu i wspieraniu takich projektów za plecami. Na koniec otrzymasz sprawdzony i udokumentowany kod.
•
Dziękuję ,
Artykuł .
Aktualne zlecenia dla freelancerów w kategorii Aplikacje desktopowe
Mała poprawka na stronie
58 PLN
Trzeba zaktualizować umowę ofertową w stopce na nową, w firmie zmieniły się zasady Zadanie na 20 minut Programowanie stron internetowych, Aplikacje desktopowe ∙ 7 godzin 7 minut temu ∙ 87 ofert |
Narzędzie do porównywania rachunków z bankiem, kartami i księgowymZadanie techniczne: narzędzie do porównywania rachunków z bankiem, kartami i księgowymOgólny cel Potrzebne jest lokalne narzędzie (skrypt/mała aplikacja w Pythonie), które uruchamiane ręcznie co 1-2 miesiące na moim komputerze i dokonuje porównania między: Rachunkami, które… Python, Aplikacje desktopowe ∙ 2 dni 14 godzin temu ∙ 42 oferty |
Dodać przerwy 10-30 sekund między wysyłkami e-mailiWitam! Szukam doświadczonego programisty 1C / BAS (BAF) do szybkiego rozwiązania problemu technicznego z wysyłką maili.Istota problemu: Używamy programu księgowego BAF (Business Automation Framework), edycja 2.0. Raz w miesiącu pojawia się potrzeba masowego wysyłania klientom… Programowanie stron internetowych, Aplikacje desktopowe ∙ 8 dni 6 godzin temu ∙ 10 ofert |
Rewersowe inżynieria konsolowych narzędzi do ankietowania kontrolerów SSD (Flash ID)1. Cel pracy Wydzielenie interfejsu programowania aplikacji (API) do interakcji z kontrolerami SSD/NVMe z dostarczonego zestawu narzędzi konsolowych (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron itd.). Wynikiem ma być działający kod w języku C/C++ lub dokładna… C i C++, Aplikacje desktopowe ∙ 8 dni 17 godzin temu ∙ 6 ofert |