Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   System für Lizenznummern? (https://www.delphipraxis.net/16026-system-fuer-lizenznummern.html)

Sharky 9. Feb 2004 11:00


System für Lizenznummern?
 
Hai,

kann mir einer von euch (oder auch mehrere *g*) einen Gedankenanstoss geben wie ich für ein Programm am besten Lizenznummern vergebe?

In der Lizenznummer müssten "enthalten sein":
  • Name des Lizenznehmers.
  • Anzahl der Serverlizenzen.
  • Anzahl der Clientlizenzen.
  • Ablaufdatum der Lizenz.

Beispiel:

Kunde Müller kauft eine Lizenz meines Programmes für 2 Server und 10 Clients. Diese soll gültig sein bis. 31.12.2004

Wenn der Kunde nun seinen Namen und die Lizenznummer eingibt soll das Programm:

a) Prüfen ob die Lizenz zur Firma Müller gehört.
b) Für welche Anzahl von Servern und Clients sie erworben wurde
c) Das Ablaufdatum aus der Lizenz lesen.

Kennt jemand ein System auf dessen Grundlage ich das realisieren kann?

atreju2oo0 9. Feb 2004 11:32

Re: System für Lizenznummern?
 
Bin hier zwar noch ein Nuub aber ich würde das so machen:

Als erstes brauchst Du eine Datenbank in der Du eine Verschlüsselung speicherst

Müller=1
Meier=2
usw...
deine ganze Nummer setzt sich dann aus 0001 002 010 231004
0001= Müller
002 = Anzahl Clients
010 = Anzahl Lizenzen
23.10.04 Ablaufdatum

Da diese so entstandene Nummer natürlich ziemlich leicht zu hacken wäre würde ich
den entstandenen Wert mit einer relativ großen Primzahl multiplizieren und somit verschlüsseln.
Man könnte auch die entstehende dualzahl als HEX an den Kunden weitergeben um die Eingabe zu verkleinern(statt 8 bit nur 2)

Ich hoffe das hat Dir geholfen...
Wenn Du in puncto Verschlüsselungsalgorithmen noch n bissl Hilfe brauchen solltest melde Dich einfach... :warn:

:dancer: :coder: :dancer2:

MrKnogge 9. Feb 2004 11:53

Re: System für Lizenznummern?
 
Zitat:

Zitat von atreju2oo0
Müller=1
Meier=2

Hier für müsste er aber schon zur Entwurfszeit
seines Programmes wissen, wer sein Produkt kauft :lol:

Aber der Ansatz is doch schon gut !

Ich würde die Serial nicht über den kompletten Namen, sondern beispielsweise nur aus den ersten 5 Buchstaben (kürzere Namen werden mit irgendeinem Zeichen aufgefüllt (0,1 oder leerzeiche - wie du willst)), damit alle Serials auch die gleiche länge haben.

Von diesen Buchstaben nimmst du dann den Ascii-Code mischt das mit den Anzahl der Server/Clients und dem Datum und verschlüsselst das ganze.

Sharky 9. Feb 2004 12:10

Re: System für Lizenznummern?
 
[quote="MrKnogge"....nicht über den kompletten Namen,....[/quote]

Eventuell gibt es ja die Möglichkeit einen Hashwert einer festen länge zu erzeugen?
Zu knacken ist so eine Seriall natürlich immer. Mal sehen ob Hagen etwas dazu weiss.

Eine DB kann ich natülich nicht verwenden. Das Programm kann ja schlecht darauf zugreifen. Oder habe ich adreju2ooO da falsch verstanden?

Phoenix 9. Feb 2004 12:25

Re: System für Lizenznummern?
 
Also ich habe da eine Prinzipielle Idee:

Du verwendest einfach eine Public-Key verschlüsselung ;-)

Die Idee ist folgende:

Du lieferst Deinen Public Key mit Deinem Programm aus.
Die Software beim Kunden erzeugt beim ersten Start ein Schlüsselpaar, bei der Bestellung der Serial schickt Dein Programm den Public Key des Käufers mit.

Du Verschlüsselst nun alle Angaben die Dein Programm braucht (kann dann ja sogar ne .ini sein) mit dessen public Key und signierst mit Deinem private Key.

Die Software kann nun a) verfizieren, daß das Keyfile von Dir kommt (dank Deinem Public Key).
Es erkennt also auch Key-Fälschungen.

Die Software kann nun b) den Key auch entschlüsseln - und zwar nur diesen einen Key! Alle anderen Keys haben andere Schlüssel und somit sind die Keys nicht austauschbar ;-)

Zudem brauchst Du Dir keine Gedanken zu machen, wie gut oder schlecht der Algorithmus Deiner Lizenznummenr ist, da es recht schwierig sein dürfte ohne Deinen private Key ein gültiges Lizenzfile zu verschlüsseln so das es aussieht asl käme es von Dir.

Freilich wird das File etwas grösser und lässt sich nur noch per eMail verschicken, aber es ist relativ sicher.

Damit brauchst Du also keine Lizenznummern erzeugen mit irgendeinem system, sondern Dich auf das wesentliche beschränken. Private/Public-Key implementationen gibt es bereits zu hauf, Du brauchst die also nur einzubinden und gut ist.

MrKnogge 9. Feb 2004 12:27

Re: System für Lizenznummern?
 
So hat er das wohl gemeint, wäre aber auch von Datenschutzgründen aus schon fatal.

Klar, zu knacken ist so etwas immer siehe die großen Firmen aller MS & Co,
aber da sich an dein Programm, von der popularität her wenige Hacker drann
zu schaffen machen, reicht wohl eine kleinere Verschlüsselung.

Ein weiterer Tip wäre eventuell, die Datenbanken nach ablauf der Demoversion ebenfalls zu verschlüsseln.

Sharky 9. Feb 2004 15:22

Re: System für Lizenznummern?
 
Uff...

ne ne. Es dürfen/können keine Daten versendet werden. Das Programm kann ohne Key installiert werden. Läuft dann halt in einem Demomodus.

Wenn der Kunde es kaufen möchte bekommt er seinen Key (xxxx-yyyyyyyy-zzzzz) und Trägt diesen ein.
Und in diesem Key sollte halt alles so stehen wie ich oben geschrieben habe.

Klar, die Server/Client anzahl und das Ablaufdatum kann ich einfach nach einem frei definierten Muster in den Schlüssel einbauen.
Dann müsste ich mir nur gedanken wegen dem Benutzernamen (Lizenznehmer) machen.

Ich dachte halt das es zu diesem Thema schon einiges an Theorien gibt. Es ist auch davon auszugehen das sich kaum einer die Mühe macht den Key zu knacken. Dafür ist das Programm zu speziell und ohne "support" würde es keiner einsetzen ;-)

Christian Seehase 9. Feb 2004 15:26

Re: System für Lizenznummern?
 
Moin Sharky,

such doch mal bei Sourceforge nach TurboPower.
Wenn ich mich recht entsinne, gab's davon auch eine Komponentensammlung für Lizenzen/Seriennummern.
Vielleicht geht's damit.

atreju2oo0 9. Feb 2004 15:35

Re: System für Lizenznummern?
 
Zitat:

Wenn der Kunde es kaufen möchte bekommt er seinen Key (xxxx-yyyyyyyy-zzzzz) und Trägt diesen ein.
Und in diesem Key sollte halt alles so stehen wie ich oben geschrieben habe
Aber warum?
Lizenz macht doch nur Sinn, wenn man anderen Usern was vorenthält...
Und so braucht nur einer die Lizens erwerben und alle können dein Prog nutzen...???

Sharky 9. Feb 2004 15:36

Re: System für Lizenznummern?
 
Hai Chris,

danke für den Tipp. Ich werde mal schauen ob es etwas gibt. Auf die schnelle habe ich dort nichts gefunden. Aber das kann auch an meinen Augen liegen ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz