gpt4 book ai didi

c# - 使用 RSACryptoServiceProvider 签名的速度

转载 作者:太空狗 更新时间:2023-10-29 18:00:20 29 4
gpt4 key购买 nike

我目前正在处理一个简单的数据签名。这是我第一次使用签名,所以也许我做错了什么。但我认为使用 512 位 RSA 和 SHA1 哈希对 448 字节进行签名需要 4.6 秒是不正常的。

代码:

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

为什么这么慢?我发现这个:http://support.microsoft.com/kb/948080 ,但这是 .NET 2.0 的问题。我正在使用 4.0。

这需要那么长时间是正常的还是有错误?

感谢您的帮助。

最佳答案

只是想让您知道,我在获取 SHA1 签名哈希时遇到了同样的缓慢问题。通常每秒签署数十个或数百个事务的一些代码突然减慢到每 5 秒 1 个。

我当时在家工作,没有连接到公司的网络。经过一番谷歌搜索后,我设法找出了罪魁祸首。一个错误似乎影响了 .Net Framework 2.0 上的 RSACryptoServiceProvider - 我相信它与 .Net Framework 4.0 上使用的代码完全相同。

因为,根据http://support.microsoft.com/kb/948080 ,我暂时的缓慢可能是由于 RSACryptoServiceProvider 的 SignData 或 VerifyData 方法试图与我公司的域 Controller 通信,我决定与我的公司建立 VPN 连接,这立即取得了成功。

现在我立即再次获得 SHA1 哈希,而不是等待长达 5 秒。

我知道这不是解决方案,但至少是一个合理的解决方法。它还可以防止我们失去理智。

关于c# - 使用 RSACryptoServiceProvider 签名的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258515/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com