我有24个相当大的RSA加密文件,我想解密它们。我正在使用线程独立地解密它们,但是我仍然花费太多时间来获得结果。所以问题是我是否可以在解密一个文件的过程中使用多个线程。
答案 0 :(得分:0)
首先,RSA不是握手吗?您可能是指AES。
第二,请确保所有缓冲的I / O流都具有8192或16384或更多字节,这只是预防措施。
第三,我不认为这是微不足道的,因为密码是设计使然的流或块算法,其后继字节取决于更安全的字节。
话虽这么说,如果您在加密方面非常有能力,并且愿意手工重做,您可以通过几个线程(可能使用简单的队列和线程seda或环和线程破坏者模式)对解密的各个步骤进行流水处理。
解密AES文件(或相反)可能需要一些尴尬的顺序步骤(借用“令人尴尬的并行”表示),例如文件的字节加载,块哈希验证,密码更新和解密。
如果坚持使用多个线程来独立处理文件,则您的CPU可能使用得很好,但是却在磁盘上竞争。而且,如果减少线程以最大程度地减少磁盘争用,则会利用不足的CPU。因此,重要的是要同时检查磁盘和cpu的使用情况,以定位正确的瓶颈,并使i / o的线程数与cpu的线程数脱钩。从磁盘加载中隔离字节解密块可能是一个不错的第一步。