Jak zweryfikować wiarygodność danych, gdy obie strony znają to samo hasło?

hashingZałóżmy, że systemy A i B ustaliły wspólne hasło: PASSWD. Aby w prosty sposób każdy z użytkowników mógł być pewny, że dane zawarte w transmisji są wiarygodne można zastosować następujący algorytm:

  1. System A chce wysłać dane D do systemu B.
  2. System A wysyła dane D1 = D oraz D2 = HASH(D + PASSWD) do systemu B.
  3. System B odczytuje dane D1, wylicza hasz D3 = HASH(D1 + PASSWD) i porównuje hasze D2 i D3.
  4. Jeśli D2 i D3 są zgodne, dane przesłane w transmisji są wiarygodne.

Czytaj dalej

Własny protokół URL Scheme, jak uruchomić aplikację desktopową z przeglądarki?

Podczas rozwijania aplikacji webowej np. klasy ERP / CRM, prędzej czy później będziemy musieli wykonać obsługę urządzeń zainstalowanych bezpośrednio na komputerze użytkownika. Może to być komunikacja z kolektorami danych, drukarkami fiskalnymi, obsługa skanera, czy podpisywanie dokumentów podpisem cyfrowym. Część takich rozwiązań mieliśmy w firmie obsłużonych za pomocą appletów Javy, a część za pomocą Java Web Start. Niestety zakończenie wsparcia appletów przez przeglądarki spowodowało konieczność zmiany wykorzystywanej technologii.

Tym razem wróciliśmy do standardowej aplikacji okienkowej instalowanej na komputerze użytkownika. Jednak głównym założeniem było to, aby użytkownik po zalogowaniu do systemu, nie musiał się ponownie logować w kolejnym programie. Jak to zrobić?

Czytaj dalej

AngularJS – czysty kod, recenzja kursu wideo

AngularJS. Czysty kodOd czasu gdy poznałem AngularaJS, znacznie bardziej polubiłem rzadko wykonywaną pracę nad frontendem web aplikacji. Mało tego, zaczęło mi to sprawiać przyjemność 🙂 To świetny framework dzięki któremu znacznie szybciej napiszemy program po stronie przeglądarki w porównaniu do wykorzystania np. samego jQuery. AngularJS kładzie nacisk na wykorzystanie wzorca projektowego MVC, co sprawia, że dosyć szybko możemy napisać łatwy w dalszym rozwijaniu kod aplikacji.

Niestety sam fakt dołączenia do projektu AngularaJS i rozwijaniu własnego modułu nie sprawi, że kod będzie rozszerzalny i wydajny o czym przekonałem się osobiście. Moja pierwsza produkcyjna aplikacja składała się z jednego modułu, jednego kontrolera i jednego szablonu. A ponieważ znacie z pewnością termin pączkowania w programowaniu, można się domyśleć jaki był dalszy efekt w miarę przybywania nowych wymagań. Kod kontrolera zaczął się rozrastać, a widoku html’owego jeszcze bardziej. Dochodziły kolejne repeaty, watchery, czy ng-showy, co w efekcie spowodowało że front praktycznie przestał być używalny w przeglądarce Internet Explorer, choć w pozostałych działał bez zarzutu.

Po przerobieniu niedawno wydanego kursu „AngularJS. Czysty kod” od Videopoint sądzę, że jest on właśnie lekarstwem na tego typu problemy początkujących.

Czytaj dalej