Lizenzierungssoftware ist noch kein gelöstes Problem - oder zumindest so sicher, ohne die Benutzer zu belästigen, und ohne in größere Infrastruktur zu investieren, ist nicht gelöst. Die Position/der Mechanismus, nach dem Sie den Lizenzstatus speichern, ist meistens irrelevant - die Registrierung ist nicht sicherer als eine Textdatei - es dauert nur Sekunden, um auf den Inhalt zuzugreifen und den Eintrag in einem Remote-Backwater zu "verstecken" der Registry tut nicht viel zu helfen.
Vermutlich hat Ihre Software eine Art Persistenz-Ding (Datenbank? Dateisystem?); Sie können den gleichen Persistenzmechanismus verwenden, um den Registrierungsstatus zu speichern.
Natürlich kann alles, was Ihre Software lesen/schreiben kann, von Personen aufgerufen werden, die versuchen, unbefugten Zugriff auf Ihre Software zu erhalten. So können Sie den Datensatz verschlüsseln; dann haben Sie das Problem, den Schlüssel für diesen Verschlüsselungsmechanismus zu verwalten; afaik, dafür gibt es derzeit keine robusten Lösungen.
Also, dann haben Sie vielleicht einen "Lizenzserver" im Internet; Ihre Software liest z. B. eine eindeutige ID für Ihren Computer ((MAC address), sendet sie an Ihren Lizenzserver und lässt den Server den Lizenzstatus zurückgeben. Dies ist wiederum ziemlich umständlich und Sie müssen Ihre Benutzer jetzt online zur Verwendung Ihrer Software anmelden.
Wenn Ihre Software für die Benutzer attraktiv ist, können Hacker den Schutz des Lizenzschlüssels in wenigen Tagen brechen und detaillierte Anweisungen im Internet veröffentlichen. Apple bemüht sich außerordentlich, die Software auf dem Iphone/Ipad zu schützen, und Jailbreak-Apps entsperren sie.
Meiner Meinung nach, wenn Ihre Software einen Umsatz von mehreren zehn Millionen Dollar wert ist, sollten Sie das Leben für Ihre Benutzer so einfach wie möglich machen und sich nicht zu viele Gedanken über den Sicherheitsaspekt machen - verwenden Sie etwas von der Stange (wie @bunting empfiehlt), oder vereinbaren Sie eine Textdatei.
Insbesondere würde ich:
- Prüfung für das Vorliegen einer gültigen Lizenzdatei beim Start der Anwendung
- wenn die Lizenzdatei nicht vorhanden ist, den Benutzer auffordern, einen Lizenzschlüssel
- eingeben vergleichen, dass Schlüssel mit Ihrem Lizenzschlüssel
- schreiben Sie eine "gültige" Datei in das Dateisystem, in Ihrem App-Verzeichnis; Alternativ können Sie eine vorhandene Konfigurationsdatei ändern.
Dies ist trivial leicht zu brechen; damit du einen Schritt weiter gehen kannst.
Erstens sind Java-Anwendungen leicht zu dekompilieren, und ein Angreifer könnte leicht Ihre "Lizenz" -Konstante lesen. Sie sollten einen Obfuscator verwenden, um dies zu erschweren (wenn auch nicht unmöglich).
Zweitens könnten Sie Ihre lokalen Lizenzdaten verschlüsseln; Auch das würde es dem völlig zufälligen Hacker schwerer machen. Sie könnten einige lokale Daten in das Verschlüsselungsschema einbeziehen, damit ein Hacker Ihre Anwendung nicht einfach mit einem funktionierenden Lizenzschlüssel neu verteilen kann (z. B. durch Multiplikation des Lizenzschlüssels mit der MAC-Adresse des Computers).
In beiden Fällen "hardwiring" Sie die Lizenz in die App; Es gibt Bulletin Boards, auf denen Hacker Lizenzschlüssel für Anwendungen veröffentlichen, und Sie können nur dann antworten, wenn Sie eine neue Version der App mit einem neuen Schlüssel ausstellen.
Die Software zu "erinnern", ist einfach. Machen Sie es nicht trivial zu hacken ist etwas anderes ... – Mysticial
Verwenden Sie license4j Anwendung wird es Ihnen helfen ... überprüfen Sie ihre Videos in youtube –