Ich möchte eine Desktop-Anwendung erstellen, die nur auf Computern mit Schlüssel oder Lizenz ausgeführt wird. Wie kann dies erreicht werden?
Das hängt ganz davon ab, wie sicher Sie es machen wollen ...
Das Problem mit Java ist, dass Sie es kompilieren können. Also, wenn jemand wollte, könnten sie Ihre Software herunterladen, rückwärts kompilieren und dann die Sicherheit, die Sie eingerichtet haben, entfernen (und sie dann neu verteilen, wenn sie es wollten).
Das ist nur ein Problem, wenn Sie vorhaben, in den Massenmarkt zu gehen, und der Verkauf und die Piraterie wären tatsächlich ein Problem.
Wenn Sie sich darüber keine Gedanken machen, können Sie entweder online oder offline nachsehen.
Die Firma, mit der ich arbeite, verwendet die Online-Methode; Es gibt ein paar Schritte:
EDIT: Ich habe seitdem geändert, wie das funktioniert, da der alte Weg ein Wartungs-Albtraum war.
name
company
email
key
. das ist die Art von Dingen, die man oft sieht. Um die Schlüssel zu generieren, verwenden Sie einfach die gleiche Funktion und laden Sie den Hash dann auf Ihren Server.
Wenn Sie möchten, dass es offline ist, könnten Sie die Hashes in den Code einbeziehen, den ich vermute, und dort gegen sie prüfen.
Ich sollte jedoch darauf hinweisen, dass ich auf keinen Fall ein Sicherheitsexperte bin. Ich entwickle mich nur für eine Firma als Teil einer Doktorarbeit, und genau so habe ich es gemacht.
Bearbeiten: Dieses Bild könnte hilfreich sein:
Zweiter Schnitt:
Ich habe jetzt "Offline-Verifikation" in den Prozess aufgenommen. Es ist nicht wirklich Offline-Verifikation, es verwendet nur den Benutzer als Proxy - sie müssen auf andere Weise auf das Internet zugreifen.
es funktioniert so:
Jedes Mal, wenn das Programm online erfolgreich verifiziert wird, fügt es auch ein Offline-Zugangspasswort zur Lizenzdatei hinzu, was bedeutet, dass es gegen temporäre Internetausfallzeiten robust ist und nur funktioniert, wenn das Internet länger als eine Woche / Monat / wie lange es auch funktioniert.
Es hängt davon ab, wie viele Kunden Sie haben und den Verteilungsmodus auch. Sie können einen Lizenzserver verwenden, aber dies erfordert eine Internetverbindung für den Kunden. Sie können USB-Dongles auch verwenden, um die Lizenzierung zu verwalten.
Es gibt kein perfektes System, um Kompromisse zwischen Einfachheit, Aufwand und Preis zu machen.
Sie können die Lizenzierung einer Maschine mit macIP online verfolgen. Selbst in Windows können Sie in der Registrierung schreiben, es gibt keine API, aber Sie können es tun. Find Snippet unten, um die Registrierung zu lesen -
%Vor%Und in Klassenebene, wenn Sie verschleiern wollen proGuard .