Gewusst wie: Lesen eine digitale Signatur in c#

March 20

Gewusst wie: Lesen eine digitale Signatur in c#

Eine digitale Signatur ist eine elektronische Darstellung, die verwendet wird, um die Identität des Absenders einer Nachricht oder der Unterzeichner eines Dokuments zu authentifizieren. Es kann auch verwendet werden, um zu überprüfen, dass der ursprüngliche Inhalt der Nachricht oder ein Dokument unverändert ist. Ein Schlüssel von einer öffentlich-privaten Schlüssel erstellt und auf dem Server installiert. Dies wird verwendet, um eine Nachricht zu verschlüsseln, bevor sie gesendet wird. Der Empfänger wird dann einen öffentlichen Schlüssel zum Entschlüsseln der Nachricht verwendet.

Anweisungen

1 Öffnen Sie ein neues Projekt in einem c#-Editor.

2 Erstellen Sie eine Funktion um die digitale Signatur zu lesen:

private Bool VerifyCommand (Zeichenkette Text, Byte [] Signatur, String CertPath)

{

3 Laden Sie die Zertifikatdatei verwenden Sie zum Überprüfen der Signatur aus einer Datei:

X509Certificate2 Cert = neue X509Certificate2(certPath);

4 Holen Sie sich den öffentlichen Schlüssel Anbieter auf, um die Datei zu öffnen:

RSACryptoServiceProvider-Csp = (RSACryptoServiceProvider) Cert. PublicKey.Key;

5 Hash des Textes:

SHA1Managed-sha1 = neue SHA1Managed();

UnicodeEncoding-Codierung = neue UnicodeEncoding();

Byte [] Data = encoding. GetBytes(text);

Byte [] Hash = sha1.ComputeHash(data);

6 Überprüfen der Signatur mit dem Hash, und schließen Sie die Funktion:

Csp zurück. VerifyHash (Hash, CryptoConfig.MapNameToOID("SHA1"), Unterschrift);

}

7 Stellen Sie sicher, dass das Sicherheitszertifikat auf dem Server, den öffentlichen Schlüssel für die digitale Signatur zu erhalten installiert ist. Wenn dies nicht der Fall ist, fügen Sie es auf dem Laufwerk "C:". Es wird durch den Code im nächsten Schritt aufgerufen werden.

8 Fügen Sie Code zum Aufrufen der Funktion VerifyCommand:

Wenn (VerifyCommand ("POST-Transaktion", Unterschrift, bei "C:\mycert.cer"))

{

MessageBox.Show ("POST-Befehl empfangen von remote-Client");

}

elseif (VerifyCommand ("Transaktion abbrechen", Unterschrift, bei "C:\mycert.cer"))

{

MessageBox.Show ("Cancel-Befehl empfangen von remote-Client");

}

elseif (VerifyCommand ("RETRIEVE Transaktion", Unterschrift, bei "C:\mycert.cer"))

{

MessageBox.Show ("RETRIEVE Transaktion empfangen von Remoteclient...");

}

sonst

{

MessageBox.Show ("Signatur ist ungültig");

}

Dabei wird das digitale Zertifikat zum Überprüfen der digitalen Signatur und überprüfen es gegen die zulässige Befehle verwendet

9 Speichern Sie das c#-Projekt, und drücken Sie die F5-Taste, um den Code auszuführen.