License Key



  • Hallo, würde gerne für mein Programm License Keys bauen.

    Der Key soll aus 5 Blöcken a 5 Zeichen bestehen.

    Der schüssel soll folgende Informationen enthalten:

    Block 1: Name des Inhabers
    Block 2: Datum beginn
    Block 3: Datum ende
    Block 4: soll immer die quersumme von (x) ergeben
    Block 5: Eine Checksumme von Block 1-4

    Hat da jemand einen Ansatz, wie ich da einen Algorythmus bauen kann? Wäre üerber ein paar Tipps sehr dankbar.

    so long

    jd



  • Sollen die Lizenzschlüssel menschlich lesbar sein oder nicht? (im letzteren Fall hättest du den kompletten ASCII-Zeichensatz zur Verfügung)

    Mal ein paar Ansätze - (a) lesbar, (b) binäre Daten

    Block 1:
    (a) die ersten fünf Buchstaben des Namens (eventuell komplett groß)
    (b) die ersten acht Buchstaben des Namens jeweils mit 5 Bit codiert ('A'=0 .. 'Z'=25)

    Block 2/3:
    (a) Tag, Monat und Jahr (zweistellig) im 36er System (10..36 = 'A'..'Z')
    (b) Unix-Zeit (siehe <ctime>) in Binärformat

    Block 5:
    (a) Summe (modulo 36) oder (b) XOR-Kombination der anderen Blöcke



  • Danke für den Tipp, das ist super.

    Also der Key soll eine Eingabe sein, also ist die Lesbare Methode am sinnvollsten oder nicht?

    Eine Sache verstehe ich nicht ganz warum modulo36, hat 36 einen besonderen Grund oder ist das nur ein frei gewählter Wert?



  • Mit dem 36-er System erfasst du alle Zahlen (0..9 == 10) und Buchstaben (A..Z == 26), hast also das komplette lesbare Alphabet zur Verfügung (Unterscheidung zwischen Groß- und Kleinbuchstaben lasse ich mal aus).

    Also theoretisch könntest du dir aus den jeweiligen Datensätzen eine Zahl zwischen 0 und 365=60466176 ermitteln (beim Namen z.B. mit einem geeigneten Hash-Algorithmus) und in 36er System ausgeben.

    PS: Was du mit Block 4 meintest, mußt du mal genauer erklären.



  • Block 4 soll mehr oder weniger ein Platzhalter darstellen, da kann drinne stehen was will hauptsache die Quersumme von block 4 ist 2 oder sowas... Ich dachte mir das ist sinnvoll, und somit auch schwer den License Key nach zu bauen. Wobei das wurscht ist, denn der License Key wird mit dem, der dann in der Datenbank steht verglichen... Jedoch will ich halt Informationen in dem Key speichern...

    Ich versuche das einmal so zu machen, wie du es beschrieben hast 🙂


Anmelden zum Antworten