Generieren Sie den Lizenzschlüssel aus dem eindeutigen Maschinenschlüssel in C # win forms Setup

8

Ich habe eine C # -Winsformulare-Anwendung in Visual Studio 2010 entwickelt und um Sicherheit zu gewährleisten, erzeuge ich einen maschinenabhängigen Schlüssel, indem ich die Systeme cpuId, biosId, diskId verwende. Es sieht aus wie

Jetzt im Setup bekomme ich nur einen Tasteneingabebereich wie unten.

und ich möchte den Maschinenschlüssel, der für das spezifische System erstellt wurde, über dem Eingabebereich für die serielle Tastatur anzeigen.

Mein Wunsch ist, dass der Endbenutzer oder Käufer der Software mich anruft und mir den Maschinenschlüssel gibt. Dann berechne ich einen Schlüssel mit diesem Schlüssel und sende ihn an den Kunden oder Käufer zurück.

Dies ist mein erstes Setup-Projekt, also bin ich mir dieser Sache nicht bewusst. Ich werde deine bescheidene Antwort sehr schätzen.

    
a_programmer 27.12.2013, 10:12
quelle

3 Antworten

4

Ich möchte deine Frage gerne in zwei Teile aufteilen.

Erstellen einer Benutzeroberfläche mit erforderlichen Feldern oder Steuerelementen, in denen Benutzer den Lizenzschlüssel angeben kann

Es gibt zwei Möglichkeiten, die Benutzereingaben während der Installation zu erhalten,

  • Erstellen eines Windows-Formulars mit den erforderlichen Steuerelementen zum Abrufen der Eingabe ( Sie können das Windows-Formular während der Installation nicht als modales Popup öffnen )

  • Erstellen eines .wid Datei, um die Benutzereingabe zu erhalten ( Dies wäre der empfohlene Ansatz )

Überprüfen des Lizenzschlüssels und Abbrechen der Installation, wenn ein ungültiger Schlüssel verwendet wird

Sobald Sie die Benutzereingaben während der Installation erhalten haben, müssen Sie diese validieren. Sie können Installer-Klasse dafür.

Install() method example

%Vor%     
Kurubaran 27.12.2013 10:41
quelle
1

Ich denke, besser sollten Sie in diesem Artikel nachsehen.

Darin hat er den gleichen Weg genommen, um den eindeutigen Schlüssel wie im System zu erzeugen. Und der Weg, um den eindeutigen Schlüssel zu erzeugen, folgt.

%Vor%

Und folgende Methode, die beschreibt, wie der Passwortcode erzeugt wird, der dem eindeutigen Schlüssel entspricht,

%Vor%

Wenn der Benutzer also das richtige Passwort eingibt, wird es im Benutzersystem gespeichert und beim nächsten Durchlauf fragt es nicht nach dem Passwort.

%Vor%

Wenn Sie gefragt werden, wann der eindeutige Schlüssel generiert wurde, kann der Benutzer Sie anrufen und seinen Code nach dem Code lesen. Sie können das Passwort wie oben beschrieben generieren.

Aber meine Sichtweise ist anders, diese Methode ist nicht gut, um mit dem Benutzer zusammenzuarbeiten. Es ist Zeitverschwendung, dass der Benutzer Sie nach einem Passwort rufen muss. Versuchen Sie es besser mit einer anderen Methode, bei der der Benutzer nur auf den Link klicken muss, der das Projekt als voll aus dem Trail herausführt. Jedenfalls wird die obige Methode deine Frage lösen, schätze ich.

    
yasmuru 27.12.2013 10:47
quelle
0

Ich schlage vor, einen Ansatz der symmetrischen oder asymmetrischen Verschlüsselung zu verwenden - das ist die Richtung, in die Sie schauen müssen, um eine maschinenbasierte geheime Schlüsselgenerierung bereitzustellen. Suchen Sie nach seinem Modell in .NET .

Wenn Sie Ihre Anwendung natürlich viel sicherer machen möchten, müssen Sie dafür einen Aktivierungsserver mit der Client-Keyhash-Datenbank bereitstellen.

    
user2604650 27.12.2013 10:22
quelle