Come leggere una firma digitale in C #

April 26

Come leggere una firma digitale in C #


Una firma digitale è una rappresentazione elettronica utilizzata per autenticare l'identità del mittente di un messaggio o firmatario di un documento. Può anche essere utilizzato per verificare che il contenuto originale del messaggio o del documento è invariato. Una chiave è stato creato da un'autorità chiave pubblica-privata e installato sul server. Questo è usato per cifrare un messaggio prima di inviarlo. Il ricevitore poi utilizza una chiave pubblica per decrittografare il messaggio.

istruzione

1 Aprire un nuovo progetto in un editor di C #.

2 Creare una funzione per leggere la firma digitale:

bool VerifyCommand privato (stringa di testo, byte [] firma, stringa CertPath)

{

3 Caricare il file del certificato da utilizzare per verificare la firma da un file:

X509Certificate2 cert = new X509Certificate2 (CertPath);

4 Ottenere la chiave pubblica dal provider, per aprire il file:

RSACryptoServiceProvider CSP = (RSACryptoServiceProvider) cert.PublicKey.Key;

5 Hash il testo:

sha1 SHA1Managed = new SHA1Managed ();

UnicodeEncoding encoding = new UnicodeEncoding ();

byte [] = dati encoding.GetBytes (testo);

byte [] = hash sha1.ComputeHash (dati);

6 Verificare la firma con l'hash e chiudere la funzione:

tornare csp.VerifyHash (hash, CryptoConfig.MapNameToOID ( "SHA1"), firma);

}

7 Assicurarsi che la certificazione di sicurezza è installato sul server per ottenere la chiave pubblica per la firma digitale. In caso contrario, aggiungerlo alla "C:" drive. Sarà chiamato dal codice nel passaggio successivo.

8 Aggiungere codice per chiamare la funzione VerifyCommand:

if (VerifyCommand ( "POST TRANSAZIONE", firma, @ "C: \ mycert.cer"))

{

MessageBox.Show ( "comando POST ricevuto dal client remoto ....");

}

else if (VerifyCommand ( "ANNULLA TRANSAZIONE", firma, @ "C: \ mycert.cer"))

{

MessageBox.Show ( "Cancellare comando ricevuto dal client remoto ....");

}

else if (VerifyCommand ( "RECUPERA TRANSAZIONE", firma, @ "C: \ mycert.cer"))

{

MessageBox.Show ( "recuperare transazione ricevuto dal client remoto ....");

}

altro

{

MessageBox.Show ( "firma non è valida");

}

Questo utilizza il certificato digitale per verificare la firma digitale e convalidare contro i comandi consentiti

9 Salvare il progetto C # e premere il tasto F5 per eseguire il codice.