Domino 9 und frühere Versionen > ND8: Entwicklung

Lizenzcode generieren

(1/3) > >>

Lloyd:
Hallo,
ich habe eine Datenbank die ich an verschiedene Kunden vertreiben möchte.
Aktuell quäle ich mich mit der Frage einer vernünftigen Lizenzcodegenerierung.

- nehme ich etwas eindeutiges wie beispielsweise die Maildömäne (da können größere Kunden aber ne Menge von haben, also aufwendig und schlecht) ?
- nehme ich eine Anzahl an Personen die darauf Zugriff haben sollen ?
- mache ich das Serverabhängig (da kann ein großer Kunde aber auch ne Menge von haben, was widerum aufwändig ist ) ?
- ...

Ich bin mir sicher dass ihr in euren Anwendungen jede Menge Gehirnschmalz in eine vernünftige Lizenzcodeberechnung investiert habt und man solche Sachen natürlich nicht preis gibt.

Aus diesem Grund will ich auch keinen Beispielcode haben, sondern wäre über einem Denkanstoß oder Beispiel Algorithmus sehr dankbar.

Nice to have wäre wenn man auch ein Datum für einen Demozeitraum mit Lizenzschlüssel freischalten könnte.

Bin für jede Hinweis wie man so etwas angeht dankbar.

Peter Klett:
Ich habe sowas mal über den Server gemacht. Bei mehreren Servern gibt es dann für jeden Server einen eigenen Lizenzschlüssel, der dann in das Feld Lizenzschlüssel (Mehrfachwert) eingetragen werden kann. Darin war auch das Ablaufdatum verschlüsselt.

Also, beim Check wird jeder Lizenzschlüssel mittels Servernamen entschlüsselt, passt einer und das Datum ist noch gültig, prima, sonst weitersuchen. Kein gültiger Schlüssel, keine Ausführung des Codes.

Wie man mit lokalen Datenbanken umgeht, müsste man prüfen. In meinem Fall war vor allem ein periodischer Agent geschützt und der Großteil der restlichen Anwendung offen, so hatte ich kein Problem mit lokalen Datenbanken.

Vorstellbar wäre auch, die Organisation des Users als Grundlage zu nehmen.

koehlerbv:
Meine Schlüssel sind etwas komplexer. Man kann angeben (jeweils optional):
- Organisation
- Servername
- Benutzeranzahl
- Ablaufdatum,
dazu kommt noch ein Code für das betroffene Programm selber. Plus Prüfziffern und so.

Nicht benötigte Angaben (eine unbegrenzte Firmenlizenz braucht ja nur die Domain) werden durch einen wiederum codierten Füllcode ersetzt. Organisation und Servernamen werden als Hashcode gespeichert. Damit ist der Schlüssel auch immer identisch lang - egal, was da in Wirklichkeit alles drin steckt.
Lokal oder Server ist bei diesem Verfahren natürlich auch vollkommen wurscht.

Hierfür braucht es natürlich auch eine Datenbank, die Codes generiert und bei der Verwaltung hilft.

Zu bedenken ist aber die nicht immer einfache Möglichkeit, die User-Anzahl überhaupt ermitteln zu können. Das ist schon ein ganz eigenes Feld der Debatte (wenn man nicht dumpf die User im DD auslesen will, was ja in der Regel nicht der Wirklichkeit eines Lizenzschlüssels entspricht!).

Bernhard

Lloyd:
Wie verschlüsselt Ihr euren Lizenzcode? Die Notesinterne Verschlüsselung ist dafür eher ungeeignet, oder?
Ich kann zwar so Sachen wie die Notes-Domäne, den Servernamen auslesen und im Quelltext abgleichen, aber wie stellt Ihr das mit einem Ablaufdatum an? Ich müßte das nach meinem jetzigen Kenntnisstand im Quelltext fest hinterlegen, dann bin ich aber nicht wirklich flexibel. Habt Ihr dafür einen Lösungsansatz?

bikerboy:
Also ich habe halte es ähnlich wie der Bernhard,

-Organisation
-UserAnzahl
-Lizenztyp (Demo oder Full)
-Gültigkeitsdatum
-Geheimer Schlüssel

Die ganzen Sachen kodier ich dann (geheim) und erstelle einen MD5Hashwert

Die Informationen packe ich zusammen in eine Datei und lasse diese von meinem Programm auslesen, der dann prüft, ob die gegebenen Daten(der geheime Schlüssel steht natürlich in einer ausgeblendeten Skriptbibliothek) zum Hashwert passen. Diese Überprüfung findet jeden Tag statt und sagt dem Benutzer Bescheid, wenn Dinge nicht mehr passen. Wenn was nicht mehr passt stellen meine Funktionen ihre Arbeit auch komplett ein.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln