2

我试图在将文件保存到磁盘时对其进行加密,并且我查看了 C# 中的 Crypto 命名空间,但不确定我应该如何去做。基本上我需要我的程序能够加密和解密文件。该文件只是一个由我的程序序列化的 xml 文件,但它可以包含敏感数据,例如 SQL 服务器的连接字符串。我的客户希望能够通过电子邮件将这些配置文件发送给其他人并在我们的应用程序中打开它们以将设置应用到他们的系统。

我尝试了 Crypto 命名空间中的 AES 类,但我不知道在哪里存储 IV 和密钥,以便我在另一台机器上的程序能够解密它。

4

1 回答 1

2

在典型的场景中,处理这样的事情的流程是:

  • IV 是静态的并且为客户所知
  • 终端机器生成一个 RSA 密钥对,并将公钥只提供给发送数据的一方(XML 文件)
  • 您的 AES 密钥已生成,并使用 RSA 公钥加密并发送给客户端,现在只有客户端能够使用之前生成的私钥获取该 AES 密钥。
  • 您使用之前安全发送给客户端的 AES 密钥加密数据

这意味着即使有人捕获了完整的数据流,他们也无法解密您的数据,因为他们没有获取 AES 密钥所需的私钥。

于 2012-08-29T14:54:03.857 回答