Poor Man Seriennummerngenerierungsschema

Ich möchte ein einfaches Schema / einen einfachen Algorithmus zum Generieren von Seriennummern basierend auf einer eindeutigen Hardware-ID (CPU-ID oder Ethernet-Mac-Adresse oder Seriennummer der Festplatte) erhalten.

Ich möchte, dass das Schema nur in eine Richtung funktioniert. Daher kann die Anwendung auf dem Client-Computer die Seriennummer überprüfen, aber keine generieren. (Also wäre es nicht einfach zu knacken).

Nun empfehlen die meisten von Ihnen höchstwahrscheinlich eine Art RSA-Verschlüsselung mit einem öffentlichen / privaten Schlüsselpaar, die zuverlässig genug funktioniert - der Client verfügt nicht über einen privaten RSA-Schlüssel, sodass er keine Seriennummer "generieren" kann.

Aber das Hauptproblem bei der RSA-Signatur ist, dass sie zu groß ist - die Signaturgröße beträgt 128 oder 256 Byte, abhängig von der RSA-Schlüsselgröße RSA Signaturgröße?)

Ich möchte, dass die Seriennummer einfach kopiert und in das Registrierungsformular eingefügt wird - also maximal 64 Zeichen, idealerweise 32 Byte.

Ok, jetzt wirst du wahrscheinlich sagen, dass diese Art des Schutzes nicht gut genug gegen Brute-Force-Hacking ist - wo du einfach alle Kombinationen ausprobierst, um die richtige Seriennummer zu bestimmen.

Aber ich würde sagen, dass Sie normalerweise "teure" Hacker oder Hacker-Teams einstellen müssen, um eine solche Brute-Force-Cracking-Anwendung zu erstellen.

Auch ich denke, es ist möglich, den Algorithmus zur Generierung von Seriennummern für die nächsten Versionen der Anwendung zu ändern oder die Mehrrundenübergabe zu verwenden, um Brute Force dramatisch zu verlangsamen.

Als Basis würde ich lieber C oder C ++ (nicht C #) verwenden, vorzugsweise Windows / wincrypt.h oder einen beliebigen vorhandenen C-Quellcode (vorzugsweise keine großen Bibliotheken von Drittanbietern).

Ist es möglich, ein öffentliches / privates RSA-Schlüsselpaar zu erstellen, sodass die Signaturgröße 32 Zeichen beträgt?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage