我正在使用C#创建Windows窗体应用程序。在我的应用程序6连接字符串。这些是从6个数据库加载数据。我想使用加密和解密来保护这些连接字符串。我在谷歌上找到了很多例子,但这些只适用于一个连接字符串。如何保护我的6连接字符串?
由于
答案 0 :(得分:1)
您的问题没有简单的答案。这实际上取决于您的信息的敏感程度以及攻击者想要获取此信息的程度。原因很简单:.NET应用程序可以轻松反编译(甚至是混淆的应用程序)。
这意味着如果您存储加密的内容,则需要在任何地方存储加密密钥。通过使用反编译,攻击者可以拥有您的加密密钥,无论您的算法有多好,解密某些东西只是时间问题。那么,您存储的信息有多敏感?它会在一段时间后到期吗?如果没有,你想要多少保护?
没有好的方法可以将敏感信息存储在不会随时间更改其加密密钥的应用程序中。
但如果您认为您的信息不那么敏感,并且您可以使用" easy"加密,您可以尝试查看.Net的Rijndael加密,这里有一个如何使用此链接以及其他加密方法的解释:http://www.codeproject.com/Articles/10154/NET-Encryption-Simplified
对称算法为简单用途的加密/解密提供了一种简单而好的加密方式 - 假设您想要存储运行在健康体育应用程序上的里程数 - 但如果您存储信用卡号码则不安全和访问银行帐户等的数据库的密码,加密不会随时间而变化。如果您的信息足够好,那么花一整年的计算机处理来解密这些信息是值得的...所以时间对您的需求至关重要!
希望这有助于您的决定。
答案 1 :(得分:0)
我更喜欢加密我的web.config部分以保护< appSettings>和< connectionStrings>。
http://msdn.microsoft.com/en-us/library/dtkwfdky%28v=vs.100%29.aspx
如果你有一个运行的构建服务器,你可以让它加密web.config,这样你就可以用纯文本进行本地开发,并在生产机器上加密版本。