Sto usando l'esempio fornito in msdn articolo sulla classe DSACryptoServiceProvider. Il problema è che ottengo una firma diversa ogni volta che eseguo il codice. Ho provato OpenSSL e non ho avuto questo problema, ma ho bisogno di lavorare con System.Security.Cryptography questa volta.
Questo è un codice sorgente: questo è il valore hash da firmare
byte[] HashValue =
{
59, 4, 248, 102, 77, 97, 142, 201,
210, 12, 224, 93, 25, 41, 100, 197,
213, 134, 130, 135
};
ed è qui che si trova il problema
// The value to hold the signed value.
byte[] SignedHashValue1 = DSASignHash(HashValue, privateKeyInfo, "SHA1");
byte[] SignedHashValue2 = DSASignHash(HashValue, privateKeyInfo, "SHA1");
Ho usato il debugger per capire che SignedHashValue1
non è uguale a SignedHashValue2