2012-07-08 68 views
0

我有一个与app.config文件一起提供的C#应用​​程序。该应用程序构建在构建服务器上并部署到多个用户。
我想加密app.config,但我不确定何时这样做:如果我在构建完成后立即执行此操作,加密是否将取决于构建服务器凭据?应用程序如何在其他机器上解密?如果我在用户机器上进行加密,那么当app.config不受保护时,这不会留下时间吗?什么时候应该加密我的配置文件?

感谢

编辑:
我用DPAPI考虑。它使用用户的凭证进行加密和解密。这就是为什么我认为我可能在向用户传送加密文件时遇到问题。

+1

当你也在向相同的用户提供解密的方法时,你应该*不会*加密文件。听起来像你需要在这里实施一项服务,以防止“邪恶”手中的代码。 – 2012-07-08 09:42:27

+0

需要加密的明智信息不应进入配置文件 – GETah 2012-07-08 09:43:19

+0

但是,连接字符串不应该去那里吗? – Noich 2012-07-08 09:46:43

回答

1

我刚才读的除了你的工作,我不认为你真的需要加密所有...

你说你打算使用加密将系统/解密基于用户的证书。这意味着两件事:

  1. 您不会在构建过程中进行加密; 不能在构建期间使用这种系统,出于同比指出的原因。
  2. 对于有权访问数据的用户,您似乎没有问题。在这种情况下,你根本不应该使用配置,但你应该提示他们输入登录信息(也许可以在以后重新使用时安全地保存它)或者只是使用他们的Windows /域登录名。

无论哪种方式,你并不需要对文件进行加密,以保护它......你只需要存储的登录信息,或其他配置信息,如用户设置,而不是配置,这是所有用户都可以阅读。

+0

从我一直在阅读的内容来看,加密连接字符串是很常见的做法,难道不是吗? 我也计划在那里存储多个连接字符串,我不希望用户编辑它们。 – Noich 2012-07-08 11:08:29

+0

这往往是毫无意义的做法。如果您试图隐藏用户的信息,请不要这样做。因为它只是将它从那些无论如何不在乎的人隐藏起来。至于让他们不要编辑它......嗯......加密对于这个目标没有任何作用。一点都没有。虽然,正确的文件权限可以。 (普通用户不应该在程序的安装目录中拥有写权限。 – 2012-07-08 11:12:48

相关问题