Jakie metody / biblioteki / narzędzia sugerowaliby ludzie do generowania kluczy licencyjnych (te piękne AAAAA-AAAAA-AAAAA-AAAAA-AAAAA rzeczy, które wkładasz podczas rejestracji oprogramowania)?
Jakieś problemy, na które trzeba zwrócić uwagę przy ich wdrażaniu?
(W tej chwili interesuje mnie to raczej jako ogólna rzecz niż język, więc po prostu określ, jakiego języka używasz, jeśli twoje rozwiązanie jest specyficzne dla danego języka).
To samo pytanie zadano na SO, a zaakceptowana odpowiedź jest całkiem dobra. Ogólny cel to:
źródło
Moją preferowaną metodą jest wygenerowanie 10.000 losowych ciągów licencji, skrót SHA1 (lub MD5) lub HMAC i włączenie całości lub części skrótu SHA1 / MD5 do samego pliku wykonywalnego. Po wprowadzeniu ciągu licencji wystarczy użyć zaciemnionego kodu, aby wygenerować skrót ciągu i porównać go z tymi na liście. Jeśli pasuje, jest to ważna licencja. Jeśli zabraknie licencji, wypuść nową wersję z większą liczbą ciągów.
Zastosowanie tylko pierwszych 96 bitów skrótu SHA1 jest wystarczające. Tak więc 10 000 licencji zajmie mniej niż 120 KB. Algorytmiczne generowanie kluczy lub tworzenie generatora kluczy byłoby niemożliwe. Jedyną podatnością, na którą musisz się martwić, jest inżynieria wsteczna lub ominięcie. (Lub ktoś rozdający swój ważny klucz.)
źródło