c# – 对大量数据进行最佳加密(速度至关重要)?

c# – 对大量数据进行最佳加密(速度至关重要)?,第1张

概述我对C#和加密比较陌生,所以请耐心等待.我正在开发一个业务应用程序(在C#,.NET 4.0,VS 2010中),它存储了大量数据,并且还必须能够读取大量数据并对其进行过滤以显示它(主要是在datagridview,有时只是一些计算…).无论如何,数据需要加密,并且必须能够仅加密和解密部分数据文件(以便从随机位置写入和读取).速度至关重要(用户不应等待数据加载和显示),安全性排在第二位.运行它的计 我对C#和加密比较陌生,所以请耐心等待.我正在开发一个业务应用程序(在C#,.NET 4.0,VS 2010中),它存储了大量数据,并且还必须能够读取大量数据并对其进行过滤以显示它(主要是在datagrIDvIEw,有时只是一些计算…).无论如何,数据需要加密,并且必须能够仅加密和解密部分数据文件(以便从随机位置写入和读取).速度至关重要(用户不应等待数据加载和显示),安全性排在第二位.运行它的计算机将至少具有至少2GB RAM的双核2.0 Ghz.

我想过使用一个相对较大(大约1MB)的xor pad,它将在运行时计算出来.我认为二进制结合xor的自定义文件设计应该提供相对较好的安全性和速度.但是现在我开始考虑使用更强大的东西,如果它仍然足够快,可能是AES(可能是.NET实现:Rijindael或Serpent或Twofish).那么您认为最好的是什么?在这种情况下,其他公司/开发人员通常会使用什么? AES有多快/慢? I / O *** 作已经很慢了,我不知道AES是否会使事情变得更糟或者甚至不会被注意到.

或者你可能有一些关于如何足够快地加密数据的其他想法?

附:我知道,如果有人成功(!)调试或反汇编代码,他可以解密数据.

编辑:我只是为客户开发自定义应用程序,所以我不能强迫他们拥有更好的硬件,我可以推荐更好的硬件.我的软件将主要由3部分组成,POS,服务器和某种管理器.如果你认为我的第一个想法(某种类型的xor)是无用的并且我应该使用更好的加密,请至少尝试估计哪种硬件(最小)会提供所需的结果(“足够快”=解密不应该对数据显示的影响,例如,如果加载数据需要1秒并在datagrIDvIEw中显示它,则解密时不应超过1,2-1,3s.

解决方法

security comes second

不要决定速度和安全性.尽量让他们两个!

像Blowfish或Rijndael / AES这样的加密算法非常高效(see).绝对投资更好的硬件!您的服务器设置并不是最先进的.实际上我的笔记本电脑比你的服务器设置更强大;)

Hardware is much cheaper than developer hours.坚持使用标准和经过批准的加密技术!如果你的硬件是最先进的,并且你在加密/解密过程中仍然面临着瓶颈,那么就是时候摧毁你的大脑了.不是之前.

只需2美分.

更新

绝对建议您的客户购买更好的硬件.我真的不能给你一个“硬件就足够了”的答案,因为你没有真正指定哪种速度可以接受哪种数据加密/解密(这真的很难回答,因为它取决于这么多因素).我建议您(或您的公司)租用硬件来使用标准加密技术进行性能测试.找到具有满足其需求的良好性能的适当硬件设置后,请向您的客户提供这些性能测量.

总结

以上是内存溢出为你收集整理的c# – 对大量数据进行最佳加密(速度至关重要)?全部内容,希望文章能够帮你解决c# – 对大量数据进行最佳加密(速度至关重要)?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1221767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存