C# – AES解密性能缓慢
发布时间:2020-12-16 00:23:59 所属栏目:百科 来源:网络整理
导读:我目前有一个装满1280×720 AES加密位图的文件夹. 我正在尝试创建一个循环文件??夹的播放器解密图像并在图像框中显示(以合理的速度) 重要的是,我不希望将文件解密到驱动器然后播放.我想只在内存中解密它们. 目前,每个图像(帧)的解密大约需要100ms.但是如果可
我目前有一个装满1280×720 AES加密位图的文件夹.
我正在尝试创建一个循环文件??夹的播放器解密图像并在图像框中显示(以合理的速度) 重要的是,我不希望将文件解密到驱动器然后播放.我想只在内存中解密它们. 目前,每个图像(帧)的解密大约需要100ms.但是如果可能的话,我想尝试将其降低到大约10毫秒. 以上是在3.0ghz的iCore7上进行了描述 目前我正在UI线程上运行所有内容.我想也许如果我多线程解密我可能得到我想要的速度,那么我将不得不在内存中存储很多.但我宁愿看看我是否可以更快地进行实际的解密. 这是解密功能: private byte[] DecryptFile(string inputFile,string skey) { MemoryStream output1 = new MemoryStream(); // ok for tests.. Rfc2898DeriveBytes k2 = new Rfc2898DeriveBytes(skey,new byte[] { 10,10,10 }); try { using (RijndaelManaged aes = new RijndaelManaged()) { byte[] key = k2.GetBytes(16); /* This is for demostrating purposes only. * Ideally yu will want the IV key to be different from your key and you should always generate a new one for each encryption in other to achieve maximum security*/ byte[] IV = k2.GetBytes(16); byte[] cript = File.ReadAllBytes(inputFile); using (MemoryStream fsCrypt = new MemoryStream(cript)) { using (ICryptoTransform decryptor = aes.CreateDecryptor(key,IV)) { using (CryptoStream cs = new CryptoStream(fsCrypt,decryptor,CryptoStreamMode.Read)) { cs.CopyTo(output1); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } return output1.ToArray() ; } 有没有比上述功能更有效的解密方法? 解决方法
你可以使用速度更快的
AesCryptoServiceProvider.
与RijndaelManaged(纯托管实现)相比,AesCryptoServiceProvider使用Windows Crypto API. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |