Ich schlage vor, einen Blick auf den Code Project-Artikel zum
Generieren des eindeutigen Schlüssels (Fingerabdruck) für einen Computer zu Lizenzierungszwecken zu werfen .
Dort finden Sie den Code in C #, der vom Autor gefunden wurde und den er selbst für seine Lizenzierungsanforderungen verwendet.
Der Autor listet diese sehr sinnvollen Punkte auf:
- Generieren Sie einen Schlüssel nur von der Hauptplatine, dem Prozessor und dem BIOS, da der Benutzer diese Teile normalerweise nicht ändert.
- Verwenden Sie keine MAC-ID, Grafikkarten-ID UND Disk-ID, da diese Geräte häufig gewechselt werden.
- Es dauert viel Zeit, um IDs von Geräten zu erhalten. Machen Sie also die Fingerabdruck-Generierungsfunktion statisch und speichern Sie sie in einer statischen Variablen, sodass der Schlüssel nur einmal in der gesamten Anwendung generiert wird.
In Bezug auf die als null zurückgegebene Seriennummer des Motherboards ist dies eine andere Sache, die weitere Untersuchungen verdient. Möglicherweise funktioniert der in diesem Artikel enthaltene Code besser, oder die CPU und der Datenträger sind möglicherweise dort, wo die Serienplatine des Motherboards nicht verfügbar ist.
Ich stelle fest, dass Sie keine Funktion benötigen, die Daten verwendet, die universell verfügbar sind, da andere Hardware möglicherweise nicht alle gewünschten Serien enthält. Alles was Sie brauchen, ist die Verkettung von Daten aus einer Reihe von Quellen, wobei die nicht verfügbaren Daten übersprungen werden, und Sie müssen sich ziemlich sicher sein, dass die gesamte Fingerabdruckzeichenfolge der verfügbaren Fingerabdrücke ziemlich eindeutig ist.