Şu anda basit bir veri imzalama parçası üzerinde çalışıyorum. İmzalamayı ilk kez kullanıyorum, belki sadece yanlış bir şey yapıyorum. Ama ben normal bir 512bit RSA ve SHA1 hashing kullanarak 448 bayt imzalamak için 4.6 saniye sürer sanmıyorum.RSACryptoServiceProvider ile oturum açma hızı
kodu:
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
Bu neden böyle yavaş? Bunu buldum: http://support.microsoft.com/kb/948080, ancak .NET 2.0 bir sorun. 4.0 kullanıyorum.
Bunun uzun sürmesi normal mi, yoksa bir hata mı var?
Yardımlarınız için teşekkür ederiz.
'KeyString' nereden geliyor? –
Sanal makinemde bir Mac OS X ana bilgisayarında bir Win XP konuğu çalıştıran birimde, hiçbir zaman fark edilmez. Ya “Data”, megabayttır, ya da “KeyString”, büyük bir RSA anahtarını ya da her ikisini temsil eder. –
KeyString, daha önce bir RSACryptoProvider'dan aldığım bir dizedir. Base64 kodlamasında sadece 512bit anahtar. Ve Veri kesinlikle sadece bayttır. Onun sadece kısa bir dizesi. – Marks