Pracuję na małym, wieloplatformowym produkcie dla systemów Windows i Mac napisanym w C++/Obj-C. Zostałem poproszony o wdrożenie modułu licencjonowania dla tego samego. Zadanie to jest częścią bardzo ambitnego projektu wprowadzenia licencji na wszystkie nasze produkty. Na koniec będziemy mieli kompletny system licencjonowania, w którym będziemy mogli sprzedawać licencje naszym klientom, którzy będą obsługiwać coroczne odnowienia, poziomy licencji itd. Moim problemem jest to, że nie wiem, co jest najważniejsze w implementacji kontrolerów licencji. Czy ktoś może mi wskazać, jak to zrobić? Czy są dostępne jakieś moduły licencjonowania typu open source?Wdrażanie biblioteki sprawdzania licencji
Odpowiedz
Używam systemu weryfikacji klucza częściowego (PKV), a ja zaimplementowałem to w języku C# z generatorem PHP. Google przedstawi różne hity, objaśnienia i implementacje; ale Brandon Staggs napisał dobry przegląd (aczkolwiek w Delphi!), tu:
PKV działa poprzez zakodowanie pewnych informacji (typ licencji, seryjny produktu, data, itd) w kluczu wraz z hash nazwy użytkownika i skrótów zakodowanych informacji. Znaczna część klucza składa się z wielu różnych skrótów. Chodzi o to, aby sprawdzić tylko podzbiór tych skrótów. Dokładny podzestaw, który został wydany, może zostać zmieniony w miarę upływu czasu dla bezpieczeństwa i ochrony przed niektórymi rodzajami inżynierii wstecznej.
Chciałbym również zaszyfrować klucz, aby ukryć znaczenie każdego znaku w licencji. W przeciwnym razie ktoś z wieloma kluczami może określić pewne pozycje char oznaczają pewne rzeczy ("oh, znaki 3-4 to numer seryjny"). To może być szpara w twojej zbroi!
Każdy opracowany system licencji będzie niedoskonały. Będzie on dostępny do spacyfikowania, a jeśli twoje produkty będą popularne, zostaną popękane. Istnieje jednak silny argument, że istnieje system licencji, aby uczciwi uczciwi ludzie mogli produkować wystarczające przeszkody dla nieco nieuczciwych osób - ale nie tak wiele przeszkód, że staje się to zbyt dużym utrudnieniem (np.). Ci, którzy włamują się do twojego systemu prawdopodobnie nie zapłacą za to.
- 1. Wykonaj metodę z przywoływanej biblioteki klas przed kompilacją aplikacji .NET do sprawdzania licencji
- 2. Bloki sprawdzania biblioteki korporacyjnej
- 3. Raport o błędach z modułu sprawdzania licencji - co to oznacza?
- 4. Modele licencji
- 5. Biblioteki do sprawdzania formatu pliku przez nagłówek
- 6. Przegląd wolnych licencji na oprogramowanie (dla manekinów)
- 7. Obsługa licencji TPL i wyjątków
- 8. Korzystanie z licencji Open Source
- 9. Typy licencji na oprogramowanie rozwojowe
- 10. Wdrażanie MS - wdrażanie folderu na stronie internetowej
- 11. wdrażanie aplikacji pythonowych
- 12. Wdrażanie HashMap
- 13. Wdrażanie Microsoft.Bcl.Async w/ClickOnce
- 14. Pakowanie i wdrażanie aplikacji Scala
- 15. Funkcja R do zwrotu licencji pakietu?
- 16. Zasoby Railsów - zachowaj komentarze do licencji
- 17. Narzędzie do określania licencji na zależności pom.xml
- 18. Ustawianie licencji na moduły w jądrze Linuxa
- 19. Biblioteki parsowania CSS dla iPhone'a
- 20. Biblioteka przeglądarki plików PDF z Androidem bez licencji GPL
- 21. java.lang.IncompatibleClassChangeError: Wdrażanie klasy Mongo
- 22. Wdrażanie gpg Szyfrowanie w Ruby
- 23. Biblioteki sztucznej inteligencji
- 24. WPF SplashScreen wdrażanie
- 25. Zautomatyzowane wdrażanie Mercurial
- 26. Wdrażanie ostatniej funkcji
- 27. Wdrażanie aplikacji na Androida
- 28. Wdrażanie projektu maven
- 29. React.js - Wdrażanie sortowania komponentów
- 30. Wdrażanie kodu Tornado
+1 za ostatni akapit, nigdy nie będzie idealny, ale jeśli będzie wystarczająco twardy, wszystko będzie dobrze. –
Uwielbiam twoje wyjaśnienie, a zwłaszcza ostatni akapit. Podsumowuje to wszystko! –