【发布时间】:2009-04-11 21:36:52
【问题描述】:
事前:
我确实阅读了关于 SO 的其他主题,但我在其中找不到答案。
(其他是关于配置文件或技术列表)
因此,我的问题非常简单,虽然有点主观(我会预先标记它:-))最简单的方法是什么..
【问题讨论】:
-
@everyone :我当然会接受答案,但仍然没有时间研究答案,问候
标签: c# encryption
事前:
我确实阅读了关于 SO 的其他主题,但我在其中找不到答案。
(其他是关于配置文件或技术列表)
因此,我的问题非常简单,虽然有点主观(我会预先标记它:-))最简单的方法是什么..
【问题讨论】:
标签: c# encryption
File.Encrypt 非常简单——一次调用(一个参数)。
当然,这实际上取决于您想要加密的目的。 File.Encrypt 加密到当前帐户,如果您要传递文件,这并没有多大用处。但是,鉴于您的规范 - 即加密文件的最简单方法 - 它必须是候选者!
【讨论】:
不要仅仅因为你加密了一个配置文件就相信你有任何安全性。如果有人可以访问加密的配置文件以及包含密码的可执行文件,则很可能会解密您的配置文件。只是有点难。
假设您的配置文件包含数据库连接的密码,则可以通过查看网络数据包获取这些密码。
【讨论】:
加密对于现代库来说是微不足道的:困难的部分是保护密钥。
因此,您需要查看要保护的内容,以及要保护的威胁。
要加密文件以便只有当前用户可以在客户端工作站上看到它,File.Encrypt 是一个不错的选择,或者具有 CurrentUser 范围的 DPAPI。
对于单个服务器上的配置文件,使用 LocalMachine 范围的 DPAPI 是一个不错的选择。然后,您需要确保只有授权用户才能登录到服务器。在这里,您实际上是在将密钥管理委托给 Windows。
对于服务器场上的配置文件,您需要在服务器之间共享密钥。 RsaProtectedConfigurationProvide 是一个不错的选择,但是您需要做更多的工作来确保所有服务器都可以访问相同的密钥,并保护它免受未经授权的访问(例如使用 DACL)。
【讨论】:
我推荐Enterprise Library 中的Cryptography Application block。非常简单,非常灵活。
【讨论】: