我对 C# 和加密比较陌生,所以请多多包涵。我正在开发一个存储大量数据的业务应用程序(在 C#、.NET 4.0、VS 2010 中),它还必须能够读取大量数据并对其进行过滤以显示它(主要在datagridview,有时只是一些计算......)。无论如何,数据都需要加密,并且必须可以仅加密和解密部分数据文件(以便从随机位置写入和读取)。速度至关重要(用户不应等待数据加载和显示),安全性次之。运行它的计算机将至少是双核 2.0+ Ghz 和至少 2GB RAM。
我考虑过使用一个相对较大(大约 1MB)的 xor pad,它将在运行时计算。我认为二进制与 xor 相结合的自定义文件设计应该提供相对较好的安全性和速度。但是现在我开始考虑使用更强大的东西,如果它仍然足够快,也许是 AES(可能是 .NET 实现:Rijindael 或 Serpent 或 Twofish)。那么你认为最好的是什么?在这种情况下,其他公司/开发商通常会使用什么?AES 有多快/多慢?I/O 操作已经很慢了,我不知道 AES 是否会使事情变得更糟,或者甚至可能不会被注意到。
或者您可能对如何足够快地加密数据有其他想法?
ps 我知道如果有人成功(!)调试或反汇编代码,他可以解密数据。
编辑:我只是为客户开发自定义应用程序,所以我不能强迫他们拥有更好的硬件,我可以推荐更好的硬件。我的软件将主要由 3 个部分组成,POS、服务器和某种管理器。如果您认为我的第一个想法(某种异或)是无用的,并且我应该使用更好的加密,请至少尝试估计哪种硬件(最小)会提供所需的结果(“足够快”=解密不应该对数据显示的影响,例如,如果加载数据并在 datagridview 中显示它需要 1 秒,那么解密应该不超过 1,2-1,3 秒)。