Ale w programie nie ma żadnych kont, na które użytkownik miałby się zalogować, żeby móc z programu korzystać. Pisząc o kontach mam na myśli tylko konta pocztowe. Wygląda to tak:
Odpalam program i wybieram w nim tzw. kreator wysyłania. Tam wczytuję plik, który chcę wysłać i wczytuję konta pocztowe, na które plik będzie wysłany. Dodatkowo wypełniam inne pola, ale to nie jest już istotne. W tym kreatorze także wpisuję hasło pobierania i hasło edycji.
Po zatwierdzeniu, plik wysyła mi się na wczytane konta pocztowe. Po zakończeniu wysyłania zostaje wygenerowany zaszyfrowany tekst, który opisałem powyżej:
Serializuję sobie obiekt klasy Task. Mam w nim różne dane, m.in. loginy i hasła do kont pocztowych. Najpierw szyfruję je na jedno hasło (hasło pobierania). Później szyfruję je na drugie hasło - hasło edycji. Później oddzielam separatorem dwa zaszyfrowane stringi i szyfruję jeszcze raz, na jakieś ogólne hasło.
Dlaczego tak robię. Muszę mieć tylko jeden zaszyfrowany ciąg znaków, który będzie dostępny na dwa hasła. Nie da się czegoś takiego zrobić, bo byłaby to luka w metodach szyfrujących. Dlatego szyfruję je na pierwsze hasło i drugie i potem łączę to w jedną całość.
Jest mi to potrzebne, ponieważ pierwszy zaszyfrowany string przetwarzam w programie w zupełnie innych miejscach niż ten drugi.
Ten zaszyfrowany tekst wysyłam innemu użytkownikowi. Podaję mu też hasło do pobrania. Hasło do edycji znam tylko ja.
I teraz gość, któremu wysłałem zaszyfrowany tekst i hasło pobierania może sobie ten plik pobrać, wystarczy, że wpisze te dane w odpowiednie miejsce w programie.
W innym miejscu ja, jako osoba, która wysłała plik, mogę zarządzać loginami i hasłami do kont, które są zaszyfrowane w tym tekście, ale muszę podać hasło edycji. Osoba, która ma tylko hasło pobierania nie ma w programie dostępu do loginów i haseł.
Ale ktoś, kto widzi kod źródłowy, może sobie loginy i hasła uzyskać, choć zna tylko hasło pobierania, a nie zna hasła edycji. A to dlatego, że w tekście zaszyfrowanym na hasło pobierania muszą być zapisane loginy i hasła do kont pocztowych, bo muszę się na nie przecież zalogować, żeby pobrać z nich plik.