Du könntest einen Text nehmen, der vielleicht so aussieht:
Quelltext
1:
| <Länge von Name der Schule><Anzahl von Name der Schule><Name der Schule><Name der Schule> ...(so oft wie in <Anzahl von Name der Schule> steht)...<Name der Schule> |
Diesen mit deinem PrivateKey asymetrisch Verschlüsseln (hierzu googlen, da finden sich sicher Algorithmen).
Dann schickst du das an dein Programm, welches den PublicKey enthält und den Text damit entschlüsselt (intern, nicht auf die Festplatte!) Dann überprüfst du, ob <Länge von Name der Schule>*<Anzahl von Name der Schule> = Die Anzahl der Zeichen hinter <Anzahl von Name der Schule>. Wenn ja, hast du einen gültigen Lizensschlüssel und kannst <Name der Schule> auslesen. Wenn nicht, hat irgendjemand an der Sache rumgepfriemelt.
Probleme:
1.Theoretisch lässt sich über den PublicKey der PrivateKey errechnen, wodurch Cracker in der Läge wären, selbstgeschriebene Lizensdokumente zu verschlüsseln.
2.Der PublicKey ist ja hardgecodet im Programm, lässt sich also per ResourceHacker auslesen (Ohne große Schwierigkeiten - darum vielleicht ein paar ähnlich lautende Konstanten deklarieren und dort falsche Schlüssel speichern, zur Verwirrung), dadurch ist man als Cracker in der Lage, die Original-Lizensdatei zu entschlüsseln und rückschlüsse auf deren Aufbau zu ziehen.
3.Der entschlüsselte Lizenstext dürfte im Speicher zu finden sein, dadurch also auslesbar, siehe punkt 2. Um das zu verhindern, sofort Speicher überschreiben, wenn der Text nicht mehr benötigt wird.
Es gibt kein sicheres Verfahren, um derartige Lizensverwaltung durchzuführen. Früher oder später finden Cracker *immer* einen Weg. Aber die oben beschriebene Methode ist vielleicht ein Ansatz

[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.