Je travaille actuellement sur une simple signature de données. C'est la première fois que j'utilise la signature, alors peut-être que je fais quelque chose de mal. Mais je ne pense pas qu'il soit normal que cela prenne 4,6 secondes pour signer 448 octets en utilisant un hachage RSA et SHA1 de 512 bits.Vitesse de signature avec RSACryptoServiceProvider
Le code:
byte[] Data = enc.GetByte(MsgString); //Get Message as byte[]
//Data is 448 bytes long
RSACryptoServiceProvider Crypter = new RSACryptoServiceProvider(512);
Crypter.ImportCspBlob(Convert.FromBase64String(KeyString));
byte[] SignedData = Crypter.SignData(Data, "SHA1"); //Line takes 4.6 seconds
Pourquoi est-ce que lent? J'ai trouvé ceci: http://support.microsoft.com/kb/948080, mais c'est un problème de .NET 2.0. J'utilise 4.0.
Est-il normal que cela dure si longtemps ou y a-t-il une erreur?
Merci pour toute aide.
D'où obtenez-vous 'KeyString'? –
Sur ma machine virtuelle exécutant un invité Win XP sur un hôte Mac OS X, la signature ne prend pas beaucoup de temps. Soit 'Data' est de taille mégaoctets ou' KeyString' représente une énorme clé RSA ou les deux. –
KeyString est une chaîne que je suis sorti d'un RSACryptoProvider avant. C'est juste une clé de 512 bits en codage Base64. Et les données sont définitivement seulement des octets. C'est juste une courte chaîne. – Marks