C#-获取RSA加密进度
如何获得RSA加密进度?我想在进度栏中显示它。 谢谢你的帮助C#-获取RSA加密进度,c#,encryption,rsa,progress,C#,Encryption,Rsa,Progress,如何获得RSA加密进度?我想在进度栏中显示它。 谢谢你的帮助 using System.Security.Cryptography; RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(4096); //I want to get percentage process of this function, because it takes a lot of time. byte[] encrypted = RSA.En
using System.Security.Cryptography;
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(4096);
//I want to get percentage process of this function, because it takes a lot of time.
byte[] encrypted = RSA.Encrypt(Encoding.Default.GetBytes("some text", true));
查看此博客帖子:
您可以使for循环的每次迭代都增加进度条
要获得更具体的帮助,请发布您的代码并让我们知道您遇到了什么问题。使用16k位密钥,我可以在2893ms内完成1000次加密调用(因此每次~3ms),这似乎不够慢,不需要进度条 另一方面,1000次呼叫的解密时间为458554ms(因此每次约460ms)。但半秒钟似乎还不能保证进度条。并不是很多人拥有16k位RSA密钥(因为生成密钥需要几个小时) 其他一些快速号码(每1000次呼叫的时间,单位为毫秒): 所以,你最好能做的就是假进度条发送短信。。。你做了一些你认为需要多长时间的试探,人为地移动进度条,然后在80%的时候做一个“eep”时刻,当它实际上没有完成的时候
由于指导原则是只使用非对称操作来引导对称操作(正如评论中已经建议的那样),因此如果对称操作的速度足够慢,您可以在对称操作上使用进度条。如果您想为非对称操作添加一个模糊因子,那么将总字节数保留在一个变量中,并在加密时将当前字节数保留在另一个变量中不会有任何影响。。阅读,展示你的代码,并解释你尝试了什么。你不能,这种方法不会报告进度。如果可能的话,您唯一的选择是调用该方法或具有较小数据块的类似方法,在两者之间更新进度。但是,您通常不会使用RSA加密对大型二进制文件进行加密。相反,您可以生成一个随机密钥并使用更快的加密方法,如RIJNDAEL,只使用RSA加密密钥。谢谢。我会的,用AES代替RIJNDAEL。AES是Rijndael的一个子集,Rijndael在许多平台上都不可用,而AES是。AES->高级加密标准。在一些实现中,AES作为Rijndael的一个选项可用,并且是默认的很多倍。谢谢,但我使用的是RSA.Encrypt函数,这只是一个命令。我想了解这个函数的进度,因为它需要很多时间。我想你可以在那里更具体一些。。用一些代码编辑你的问题,这样我们就可以更好地理解你在做什么。您使用什么库进行RSA加密?@Kaprog此库是特定库还是标准库?告诉class
System.Cryptographi…
的完整路径。注意OP使用的是4096位密钥,时间很短。一定还有别的事。
Keysize | Encrypt | Decrypt
--------|---------|--------
16384 | 2893 | 458554
4096 | 216 | 14636
3584 | 182 | 13259
3072 | 149 | 8370
2560 | 127 | 4680
2048 | 94 | 2083
1536 | 86 | 1236
1024 | 71 | 473
512 | 64 | 150